新闻动态

你的位置:最专业的的回血计划团队 > 新闻动态 > 1 分钟极速接入:ABAP 系统如何调用 DeepSeek

1 分钟极速接入:ABAP 系统如何调用 DeepSeek

发布日期:2025-05-21 10:54    点击次数:186

笔者之前的文章,已经详细介绍了 DeepSeek 的 API 调用方式:

在腾讯 HAI 上使用 DeepSeek + RAG 实现 SAP 私人知识库

免费使用 DeepSeek R1 满血版不卡顿,支持个人知识库

DeepSeek API 的调用方法

之前已经介绍过 ABAP 里一些开箱即用的调用 ChatGPT API 的工具和 SDK:

使用 ChatGPT Canvas 辅助 ABAP 开发

在 SAPGUI 里同 ChatGPT 进行聊天

ChatGPT Store 上和 ABAP 相关的那些定制化 GPT 到底好不好用?

同理,在 ABAP 里通过代码的方式,调用 DeepSeek 的 API 也非常容易。

在 DeepSeek API 控制台上,能看到针对 curl 和其他编程语言调用的示例代码。

把 curl 的代码粘贴下来,直接扔给 ChatGPT,让它翻译成对应的 ABAP 代码。

图片

指令:

请你扮演一个资深的 ABAP 开发人员,请你把下面这段 curl 消费 API 的操作,翻译成能够运行的 ABAP 代码。

听说 ChatGPT 5 也快出了。目前 o3-mini-high, 应该是手头能用的最强的代码编写工具了吧。

图片

果然 ChatGPT 生成的代码质量非常高,直接激活通过,一次成功。我只需要把代码里的 <token> 占位符,替换成自己的 API key 就能运行了。

将代码中要问 DeepSeek 的问题,硬编码成 "What is ABAP?".

另存为一个 ABAP 报表,直接运行, 收到 DeepSeek API 的调用结果。

图片

完整的 ABAP 代码如下,100% 由 ChatGPT 生成:

REPORT z.DATA: lo_http_client TYPE REF TO if_http_client,      lv_url         TYPE string VALUE 'https://api.siliconflow.cn/v1/chat/completions',      lv_token       TYPE string VALUE '<此处替换成你自己的 API key>',      lv_json_payload TYPE string,      lv_response    TYPE string.lv_json_payload = `{` &&  `"model": "deepseek-ai/DeepSeek-V3",` &&  `"messages": [` &&     `{` &&      `"role": "user",` &&      `"content": "What is ABAP?"` &&    `}` &&  `],` &&  `"stream": false,` &&  `"max_tokens": 512,` &&  `"stop": [` &&    `"null"` &&  `],` &&  `"temperature": 0.7,` &&  `"top_p": 0.7,` &&  `"top_k": 50,` &&  `"frequency_penalty": 0.5,` &&  `"n": 1,` &&  `"response_format": {` &&    `"type": "text"` &&  `},` &&  `"tools": [` &&    `{` &&      `"type": "function",` &&      `"function": {` &&        `"description": "<string>",` &&        `"name": "<string>",` &&        `"parameters": {},` &&        `"strict": false` &&      `}` &&    `}` &&  `]` &&`}`.TRY.    cl_http_client=>create_by_url(      EXPORTING        url    = lv_url        ssl_id = 'ANONYM'      IMPORTING        client = lo_http_client    ).    lo_http_client->request->set_method( if_http_request=>co_request_method_post ).    lo_http_client->request->set_header_field(      name  = 'Authorization'      value = |Bearer { lv_token }|    ).    lo_http_client->request->set_header_field(      name  = 'Content-Type'      value = 'application/json'    ).    lo_http_client->request->set_cdata( lv_json_payload ).    lo_http_client->send( ).    lo_http_client->receive( ).    lv_response = lo_http_client->response->get_cdata( ).    WRITE: / 'Response:', lv_response.  CATCH cx_root INTO DATA(lx_root).    WRITE: / 'Error:', lx_root->get_text( ).ENDTRY.
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。