SAP调用deepseek 的API
突然想如果SAP用户可以在SAP内使用DEEPSEEK进行一些简单的问答也很有趣。(有条件的话可以本地部署一个deepseek,对硬件要就较高)。我看了deepseek官网调用API是会产生费用,新用户初始金额为0
所以我用了另外一个平台 siliconflow,会给用户14元的体验基金。可以查看API文档进行接口调用。
首先需要生产自己的APIKEY
然后选择一个模型查看其API文档,
首先我们可以在Postman进行测试,地址:https://api.siliconflow.cn/v1/chat/completions
header上填写前面生成的Key.
Body: message的信息可以自己定义
{“model”:“Qwen/Qwen2.5-VL-72B-Instruct”,
“stream”:false,
“messages”:[{“role”: “system”,
“content”: “可以给我讲个故事吗?”}]
}
效果如下图,也可以尝试流的模式,改成ture就会持续以流形式发送。
在不用屏幕的情况下先尝试,这个是一个比较简单的demo.后面你可以用OOALV进行分成两块用于用户提问题和问题显示。
*&---------------------------------------------------------------------*
*& Report ZHT_HTTPS_TEST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZHT_HTTPS_TEST.DATA: LEN TYPE I, "发送报文长度LEN_STRING TYPE STRING,COUNT TYPE CHAR15,URL TYPE STRING, "接口地址URL_TOKEN TYPE STRING, "获取token地址HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT, "http客户端HTTP_TOKEN TYPE REF TO IF_HTTP_CLIENT, "http客户端POST_STRING TYPE STRING,RESULT TYPE STRING,LV_RESULT TYPE STRING,LV_TOKEN TYPE STRING,LV_HEADER TYPE STRING.
DATA: LV_JSON3 TYPE STRING,LV_JSON TYPE String,LT_RES1 TYPE String,LT_ANDON TYPE String.
DATA:SERIALIZER TYPE REF TO CL_TREX_JSON_SERIALIZER,LV_JSON1 TYPE STRING.
URL = 'https://api.siliconflow.cn/v1/chat/completions'.
CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URLEXPORTINGURL = URLIMPORTINGCLIENT = HTTP_CLIENTEXCEPTIONSARGUMENT_NOT_FOUND = 1PLUGIN_NOT_ACTIVE = 2INTERNAL_ERROR = 3OTHERS = 4.
"设定传输请求内容格式以及编码格式
HTTP_CLIENT->REQUEST->SET_CONTENT_TYPE( CONTENT_TYPE = 'application/json; charset=utf-8' ).
HTTP_CLIENT->REQUEST->SET_METHOD( IF_HTTP_REQUEST=>CO_REQUEST_METHOD_POST ).
HTTP_CLIENT->request->set_header_field( name = 'Authorization'value = '在这里填写你的APIKEY' )."设置调用方法
CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELDEXPORTINGNAME = '~request_method'VALUE = 'POST'.*--------------------------------------------------------------------------------------------------------
CLEAR: LV_JSON3.LV_JSON3 = '{"model":"Qwen/Qwen2.5-VL-72B-Instruct","stream":false, "messages":[{"role": "system", "content": "你好"}]}'.
LV_JSON = LV_JSON3."设置待传输内容长度
LEN = STRLEN( LV_JSON ).
"设置传入字符串
CALL METHOD HTTP_CLIENT->REQUEST->SET_CDATAEXPORTINGDATA = LV_JSONOFFSET = 0LENGTH = LEN."发送
CALL METHOD HTTP_CLIENT->SENDEXCEPTIONSHTTP_COMMUNICATION_FAILURE = 1HTTP_INVALID_STATE = 2HTTP_PROCESSING_FAILED = 3HTTP_INVALID_TIMEOUT = 4OTHERS = 5.
IF SY-SUBRC <> 0.ENDIF."接收
CALL METHOD HTTP_CLIENT->RECEIVEEXCEPTIONSHTTP_COMMUNICATION_FAILURE = 1HTTP_INVALID_STATE = 2HTTP_PROCESSING_FAILED = 3.
IF SY-SUBRC <> 0 .ENDIF.
CLEAR RESULT.
RESULT = HTTP_CLIENT->RESPONSE->GET_CDATA( )."提取返回字符串
WRITE :RESULT.
BREAK-POINT.
后面我们也可以在UI5上调用deepseek的API接口这样会更直观,比较详细的教程
SAP UI5 应用如何调用 DeepSeek API 并以流式方式(Streaming)显示结果
也可以在一些报错的地方自动跳转到之前写的report页面
例如: SAP集成DeepSeek之ST22集成DeepSeek
目前遇到报错: Error code: ICMECONNREFUSED 。应该是内网的原因,要配置代理,具体暂时还没解决,有人知道吗??ε=(´ο`*)))唉