文章目录
- 前言
- 一、申请试用
- 二、ROS中使用
-
- 1.配置环境变量
- 2.编写ros功能包
- 总结
前言
讯飞星火认知大模型是由科大讯飞自主研发的认知智能大模型,通过学习海量的文本、代码和图像,具备跨领域的知识和语言理解能力,能基于自然对话方式理解和执行任务。目前开放了API接口供用户使用。
一、申请试用
官方链接如下:讯飞星火认知大模型
申请使用成功后,会得到自己的服务接口认证信息,包含APPID、APISecret、APIKey,在使用时需要替换为自己的。
在应用中下载Linux SDK包,官方文档说明中有SDK介绍、兼容性说明、接口调用流程、工程配置、快速集成及错误码信息。
二、ROS中使用
整个Spark3.5_Linux_SDK_v1.1包目录结构如下:
1.配置环境变量
cd Spark3.5_Linux_SDK_v1.1/lib/
sudo cp libSparkChain.so /usr/lib/
2.编写ros功能包
2.1 创建功能包
cd catkin_ws/src
catkin_create_pkg xunfei_gpt roscpp std_msgs rospy
cd ..
catkin_make
2.2 编写源文件
将Spark3.5_Linux_SDK_v1.1包中include目录下的头文件放在xunfei_gpt/include/xunfei_gpt目录下。
src中新建源文件demo.cpp,采用同步调用方式。
initSDK()函数中添加自己的服务接口认证信息
// #include "../include/sparkchain.h"
#include <iostream>
#include <string>
#include <atomic>
#include <unistd.h>
#include <regex>
#include <xunfei_gpt/sparkchain.h>
#include <ros/ros.h>
#include <std_msgs/String.h>
#define GREEN "\033[32m"
#define YELLOW "\033[33m"
#define RED "\033[31m"
#define RESET "\033[0m"
using namespace SparkChain;
using namespace std;
// async status tag
static atomic_bool finish(false);
// result cache
string final_result = "";
class SparkCallbacks : public LLMCallbacks
{
void onLLMResult(LLMResult *result, void *usrContext)
{
int status = result->getStatus();
printf(GREEN "%d:%s:%s:%s \n" RESET, status, result->getRole(), result->getContent(), usrContext);
final_result += string(result->getContent());
if (status == 2