SAP ABAP调用DeepSeek API大模型接口

搜索了一下DeepSeek,发现有人已经实现了SAP的对接,

不登录网页,SAP如何使用DeepSeek快速编程,ABAP起飞啦~

按照对应的注册流程和方法。总算做出了第一个能够直连DeepSeek的API abap程序。

效果不错。

report ZTOOL_ABAP_CALL_DS.


data:
      LV_JSON_REQUEST  type STRING .



data LV_CONT type STRING.

LV_CONT 'SAP ewm是什么?请用中文回答我'.

* 构建JSON请求体
LV_JSON_REQUEST '{"model":"deepseek-chat",'
&& '"messages":['
&& '  {"role":"system","content":"'      && LV_CONT &&   '"},'
&& '  {"role":"user","content":"Hello!"}'
&& '],'
&& '"stream":false}'.




data GV_OK type C length 6.
data LV_STR type STRING.
data LV_RET type STRING.
perform FRM_TEST using LV_JSON_REQUEST changing LV_RET.


form FRM_TEST  using UV_JSON_REQUEST changing CV_RET.

dataLV_STATUS         type I,
        LV_ERROR_OCCURRED type FLAG,
        LV_ERROR_MSG      type STRING,
        LV_RESPONSE_BODY  type STRING.

clear CV_RET.
do times.
perform SEND_JSON using
'https://api.deepseek.com/chat/completions'  "
          UV_JSON_REQUEST            " JSON报文
changing LV_STATUS
      LV_RESPONSE_BODY
      LV_ERROR_OCCURRED
      LV_ERROR_MSG.
enddo.


* Show result
format color col_heading.
write'Response status:'LV_STATUS.
write'调用成功次数:'GV_OK.
if LV_ERROR_OCCURRED 'X'.
format color col_negative.
write'Error occurred:'LV_ERROR_MSG.
endif.
format color col_normal.
write'Response:'LV_RESPONSE_BODY.

if LV_RESPONSE_BODY cs `"content":"`.
perform FRM_CUT using LV_RESPONSE_BODY
`"content":"`
`"},"logprobs":`
changing CV_RET.



endif.

endform.                    "start

form SEND_JSON using IV_URL type STRING
      IV_JSON_DATA type STRING
changing CV_STATUS type I
  CV_RESPONSE_BODY type STRING
  CV_ERROR_OCCURRED type FLAG
  CV_ERROR_MSG type STRING.


staticsLO_CLIENT type ref to IF_HTTP_CLIENT.

clearCV_ERROR_MSG,
  CV_STATUS,
  CV_ERROR_OCCURRED,
  CV_ERROR_MSG.

if IV_URL is initial.
message E349(SBDSinto CV_ERROR_MSG.
    CV_ERROR_OCCURRED 'X'.
return.
endif.
statics SV_BEGIN type C length 1.
if SV_BEGIN is initial.
call method CL_HTTP_CLIENT=>CREATE_BY_URL
exporting
        URL                IV_URL
importing
CLIENT             LO_CLIENT
exceptions
        ARGUMENT_NOT_FOUND 1
        PLUGIN_NOT_ACTIVE  2
        INTERNAL_ERROR     3
others             4.
if SY-SUBRC ne 0.
message id SY-MSGID type SY-MSGTY number SY-MSGNO
with SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
into CV_ERROR_MSG.
      CV_ERROR_OCCURRED 'X'.
return.
endif.
    SV_BEGIN 'X'.
    LO_CLIENT->REQUEST->SET_CONTENT_TYPE'application/json' ).
    LO_CLIENT->REQUEST->SET_METHOD'POST' ).
*   自定义参数
    LO_CLIENT->REQUEST->SET_HEADER_FIELDNAME 'InterfaceName' VALUE 'HTTP://WWW.HOT583.COM' ). "//保留。
    LO_CLIENT->REQUEST->SET_HEADER_FIELDNAME 'Authorization' VALUE 'Bearer sk-f28ade71f6748ae8adfa98ka8132' ). "换算成自己的DeepSeek网址申请密钥吧。

默认有10元赠送金额,相当于免费。过了之后支付宝或者微信采购即可。




endif.

  LO_CLIENT->REQUEST->SET_CDATAIV_JSON_DATA ).

call method LO_CLIENT->SEND
exceptions
      HTTP_COMMUNICATION_FAILURE 1
      HTTP_INVALID_STATE         2
      HTTP_PROCESSING_FAILED     3
others                     4.
if SY-SUBRC ne 0.
    LO_CLIENT->GET_LAST_ERRORimporting MESSAGE CV_ERROR_MSG ).
    CV_ERROR_OCCURRED 'X'.
return.
endif.

  LO_CLIENT->RECEIVEexceptions others ).
if SY-SUBRC ne 0.
    LO_CLIENT->GET_LAST_ERRORimporting MESSAGE CV_ERROR_MSG ).
    CV_ERROR_OCCURRED 'X'.
return.
endif.

  CV_RESPONSE_BODY LO_CLIENT->RESPONSE->GET_CDATA( ).
  LO_CLIENT->RESPONSE->GET_STATUSimporting CODE CV_STATUS ).

* CALL METHOD LO_CLIENT->CLOSE( )."如果多开需要关闭。
  GV_OK =  GV_OK + 1.


endform.
*&---------------------------------------------------------------------*
*& Form FRM_CUT
*&---------------------------------------------------------------------*
*& 截取AB中间的保留到C。
*&---------------------------------------------------------------------*
form FRM_CUT  using    UV_INPUT
                       P_A
                       P_B
changing CV_RET.
data LV_TMP type STRING.
split UV_INPUT at P_A into LV_TMP CV_RET.
clear LV_TMP.
split CV_RET   at P_B into CV_RET LV_TMP.

endform.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/70617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用python制作一个天气预报系统

制作一个天气预报系统可以通过调用天气 API 来获取实时天气数据,并使用 Python 处理和展示这些数据。以下是一个完整的指南,包括代码实现和注意事项。 1. 选择天气 API 首先,需要选择一个提供天气数据的 API。常见的天气 API 有: OpenWeatherMap API:提供全球范围内的天…

verilog练习:i2c slave 模块设计

文章目录 前言1. 结构2.代码2.1 iic_slave.v2.2 sync.v2.3 wr_fsm.v2.3.1 状态机状态解释 2.4 ram.v 3. 波形展示4. 建议5. 资料总结 前言 首先就不啰嗦iic协议了,网上有不少资料都是叙述此协议的。 下面将是我本次设计的一些局部设计汇总,如果对读者有…

2025年度Python最新整理的免费股票数据API接口

在2025年这个充满变革与机遇的年份,随着金融市场的蓬勃发展,量化交易逐渐成为了投资者们追求高效、精准交易的重要手段。而在这个领域中,一个实时、准确、稳定的股票API无疑是每位交易者梦寐以求的工具。 现将200多个实测可用且免费的专业股票…

物品匹配问题-25寒假牛客C

登录—专业IT笔试面试备考平台_牛客网 这道题看似是在考察位运算,实则考察的是n个物品,每个物品有ai个,最多能够得到多少个物品的配对.观察题目可以得到,只有100,111,010,001(第一位是ci,第二位是ai,第三位是bi)需要进行操作,其它都是已经满足条件的对,可以假设对其中两个不同…

活动预告 |【Part 1】Microsoft 安全在线技术公开课:通过扩展检测和响应抵御威胁

课程介绍 通过 Microsoft Learn 免费参加 Microsoft 安全在线技术公开课,掌握创造新机遇所需的技能,加快对 Microsoft Cloud 技术的了解。参加我们举办的“通过扩展检测和响应抵御威胁”技术公开课活动,了解如何更好地在 Microsoft 365 Defen…

MySQL 库建表数量有限制吗?

问:MySQL 库建表数量有限制吗? 答:无限制 官方文档: MySQL has no limit on the number of databases. The underlying file system may have a limit on the number of directories. MySQL has no limit on the number of tabl…

【电机控制器】STC8H1K芯片——低功耗

【电机控制器】STC8H1K芯片——低功耗 文章目录 [TOC](文章目录) 前言一、芯片手册说明二、IDLE模式三、PD模式四、PD模式唤醒五、实验验证1.接线2.视频(待填) 六、参考资料总结 前言 使用工具: 1.STC仿真器烧录器 提示:以下是本…

校园网规划方案

个人博客站—运维鹿: http://www.kervin24.top CSDN博客—做个超努力的小奚: https://blog.csdn.net/qq_52914969?typeblog 本课程设计参考学习计算机网络 思科Cisco Packet Tracer仿真实验_哔哩哔哩_bilibili, 文章和pkg详见个人博客站: http://www.kervin24.to…

【redis】数据类型之list

Redis的List数据类型是一个双向链表,支持在链表的头部(left)和尾部(right)进行元素的插入(push)和弹出(pop)操作。这使得List既可以用作栈(stack)…

用 DeepSeek + Kimi 自动做 PPT,效率起飞

以下是使用 DeepSeek Kimi 自动做 PPT 的详细操作步骤: 利用 DeepSeek 生成 PPT 内容: 访问 DeepSeek 官网,完成注册/登录后进入对话界面。输入指令,例如“请用 Markdown 格式生成一份关于[具体主题]的 PPT 大纲,需包…

机器学习怎么学习,还有算法基本的源代码

1.scikit-learn官方文档,中文版/英文版 中文社区:https://scikit-learn.org.cn/ 中文官方文档:https://scikitlearn.com.cn/ 英文版:https://scikit-learn.org/stable/(翻墙) 2.菜鸟教程:AI&a…

记录安装pdsh中 Linux 系统根目录空间不足导致的编译安装问题

解决 Linux 系统根目录空间不足导致的编译安装问题 问题描述 在 Ubuntu 系统上编译安装 pdsh-2.29 时,由于根目录空间不足,导致 configure 过程中出现以下错误: ./configure: line 1197: cannot create temp file for here-document: No s…

位图的深入解析:从数据结构到图像处理与C++实现

在学习优选算法课程的时候,博主学习位运算了解到位运算的这个概念,之前没有接触过,就查找了相关的资料,丰富一下自身,当作课外知识来了解一下。 位图(Bitmap)是一种用于表示图像的数据结构&…

【Matlab优化算法-第14期】基于智能优化算法的VMD信号去噪项目实践

基于智能优化算法的VMD信号去噪项目实践 一、前言 在信号处理领域,噪声去除是一个关键问题,尤其是在处理含有高斯白噪声的复杂信号时。变分模态分解(VMD)作为一种新兴的信号分解方法,因其能够自适应地分解信号而受到…

python连点器

要实现一个用于抖音点赞的鼠标连点工具,可以通过编程或现有软件实现。以下是两种常见方法(但请注意:频繁自动化操作可能违反平台规则,需谨慎使用): 方法 1:使用现成工具(如 AutoClic…

8.JVM-方法区

前言 这次所讲述的是运行时数据区的最后一个部分 从线程共享与否的角度来看 ThreadLocal:如何保证多个线程在并发环境下的安全性?典型应用就是数据库连接管理,以及会话管理 栈、堆、方法区的交互关系 下面就涉及了对象的访问定位 Person&a…

C++:将函数参数定义为const T的意义

C++很多函数的参数都会定义为const T&,那么这么做的意义是什么呢? 避免拷贝:通过引用传递参数而不是值传递,可以避免对象的拷贝,从而提高性能,特别是当对象较大时。 保护数据:使用const关键字可以防止函数修改传入的参数,确保数据的安全性和一致性。 对于保护数据这…

大模型训练(7):集合通信与通信原语

0 背景 分布式训练过程中设计到许多通信上的操作, 每个操作有其不同的术语并且有所区别,这里将其用简单的例子和描述总结一下,方便理解。 集合通信(Collective Communications)是一个进程组的所有进程都参与的全局通…

全程Kali linux---CTFshow misc入门(38-50)

第三十八题: ctfshow{48b722b570c603ef58cc0b83bbf7680d} 第三十九题: 37换成1,36换成0,就得到长度为287的二进制字符串,因为不能被8整除所以,考虑每7位转换一个字符,得到flag。 ctfshow{5281…

计算机视觉的研究方向、发展历程、发展前景介绍

以下将分别从图像分类、目标检测、语义分割、图像分割(此处应主要指实例分割)四个方面,为你介绍研究生人工智能计算机视觉领域的应用方向、发展历程以及发展前景。 文章目录 1.图像分类应用方向发展历程发展前景 2.目标检测应用方向发展历程…