星火大模型sdk

如何使用星火sdk,科大讯飞官网有sdk使用文档。这里只是做些补充。

 

把使用过程分为四种操作:初始化,向星火提交问题,接收星火给出的答案,UnInit。

  1. 初始化。AIKIT_Init、AIKIT_ChatCallback。一次只须调用一次。线程:我是把它们放在同一线程。
  2. 向星火提交问题。AIKIT_AsyncChat。线程:我是把它放在一个不是调用初始化操作的线程。
  3. 接收星火给出的答案。不需要调用星火api,sdk会调用你在AIKIT_ChatCallback注册的函数,像用于按收文字的chatOnOutput,用于接收此次回答token消耗情况的chatOnToken。chatOnOutput、chatOnToken在星火sdk创建的线程。
  4. UnInit。AIKIT_UnInit。线程:我是把它放在和初始化操作同一个线程。

操作#1、操作#4应该只须调用一次,操作#2、操作#3成对出现。

 

一、一次运行实例

  • 1947-2045(speech_thread)。1947是进程id,后面是线程id。在这线程执行初始化、UnInit操作
  • 1947-2023(main_thread)。在这线程向星火提交问题。
  • 1947-2049/2048/2047/2046。应该是星火大模型创建的线程,用于向client返回问题的答案

834、842、19256、24696等:SDL_Log此条语句时的SDL_GetTicks()。

10:21:05.599 1947-2045: 834 [spark.cpp]pre AIKIT_Init
10:21:05.607 1947-2045: 842 [spark.cpp]pre AIKIT_ChatCallback
10:21:05.607 1947-2045: 842 [spark.cpp]post AIKIT_ChatCallback

操作#1:初始化。依次调用两个api:AIKIT_Init、AIKIT_ChatCallback。这里两个api执行时间都很短,遇到过AIKIT_Init要5秒多。AIKIT_ChatCallback功是向星火注册私有回调函数,第一个参数就是接收答案的chatOnOutput。

10:21:24.022 1947-2023: 19256 [spark.cpp]spark:V2.0 pre AIKIT_AsyncChat maxToken: 10, id: 4294967295
10:21:29.462 1947-2023 24696 [spark.cpp]post AIKIT_AsyncChat

操作#2:向星火提交问题。提交问题api是apiAIKIT_AsyncChat,虽然函数名中有Async字样,但并不是立即返回,这里用了5秒。apiAIKIT_AsyncChat的第二个参数inputText存放着问题:浙江省省会是哪里?

10:21:29.978 1947-2049 25212 [spark.cpp]chatOnOutput handle: 0xdc8cd5b0 role: assistant content: 浙江省 index: 0
10:21:29.979 1947-2048 25213 [spark.cpp]chatOnOutput handle: 0xdc8cd5b0 role: assistant content: 的省 index: 0
10:21:30.178 1947-2047 25413 [spark.cpp]chatOnOutput handle: 0xdc8cd5b0 role: assistant content: 会城市是 index: 0
10:21:30.384 1947-2046 25618 [spark.cpp]chatOnOutput handle: 0xdc8cd5b0 role: assistant content: 杭州。 index: 0
10:21:30.384 1947-2046 25619 [spark.cpp]chatOnToken handle: 0xdc8cd5b0 completionTokens: 9 promptTokens: 15 totalTokens: 24

操作#3:接收星火给出的答案。chatOnOutput、chatOnToken是AIKIT_ChatCallback时向星火注册的函数,前者用于接收文字答案,后者接收此次回答的token消耗情况。就我几次跟测下来,totalTokens应该是此次总计消耗数。举个例子,在科大讯飞官网账号界面,之前今日已用是46的话,那经过此次后,会更新到70。注意下线程,这些应该是星火大模型sdk创建的线程。此次最后得到的答案:浙江省的省会城市是杭州。

15:21:36.780 1947-2045 444626 [spark.cpp]pre AIKIT_UnInit
15:21:36.803 1947-2045 444649 [spark.cpp]post AIKIT_UnInit

操作#4:UnInit。api是AIKIT_UnInit。我是把它放在和初始化操作同一个线程。

全部评论: 0

    写评论: