学习链接
学习一:讯飞星火创建应用后使用test.py文件调用
本视频讲述了如何使用Python调用讯飞星火认知大模型API。首先需要注册星火,获取认证码,然后选择个人认证。最后通过复制app id、粘贴APIT和API key到样例包中,即可使用。讯飞星火认知大模型可以快速回答问题,并用Python轻松调用。
打开网址:讯飞星火api https://xinghuo.xfyun.cn/sparkapi
登录
讯飞星火应用网址:https://console.xfyun.cn/app/myapp
看这个视频学的是调用2.0版本的api,后面写一个3.0的api。
【但是好像APPID什么的接口认证信息都一样不知道有什么区别】
【可能是下载的SDK和文档什么的不一样吧】
接口调用流程图
查看web api文档
文档网址:https://www.xfyun.cn/doc/spark/Web.html#_2-function-call%E8%AF%B4%E6%98%8E
这里的示例先使用Python调用。
Python调用示例
点击Python调用示例之后就会下载一个文件。
文件下载链接:https://xfyun-doc.cn-bj.ufileos.com/static%2F16974374635522820%2FSparkApi_Python.zip
解压完文件后可以看到有两个py文件。
直接在项目中打开,下面是test.py文件的完整代码
import SparkApi
#以下密钥信息从控制台获取
appid = "XXXXXXXX" #填写控制台中获取的 APPID 信息
api_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" #填写控制台中获取的 APISecret 信息
api_key ="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" #填写控制台中获取的 APIKey 信息
#用于配置大模型版本,默认“general/generalv2”
domain = "general" # v1.5版本
# domain = "generalv2" # v2.0版本
#云端环境的服务地址
Spark_url = "ws://spark-api.xf-yun.com/v1.1/chat" # v1.5环境的地址
# Spark_url = "ws://spark-api.xf-yun.com/v2.1/chat" # v2.0环境的地址
text =[]
# length = 0
def getText(role,content):
jsoncon = {}
jsoncon["role"] = role
jsoncon["content"] = content
text.append(jsoncon)
return text
def getlength(text):
length = 0
for content in text:
temp = content["content"]
leng = len(temp)
length += leng
return length
def checklen(text):
while (getlength(text) > 8000):
del text[0]
return text
if __name__ == '__main__':
text.clear
while(1):
Input = input("\n" +"我:")
question = checklen(getText("user",Input))
SparkApi.answer =""
print("星火:",end = "")
SparkApi.main(appid,api_key,api_secret,Spark_url,domain,question)
getText("assistant",SparkApi.answer)
# print(str(text))
可以发现基本上我们只用改第三行到第五行的变量数据即可(自己的接口认证信息)
修改了之后直接运行:
报错显示:
C:\ProgramData\anaconda3\envs\python3_10\python.exe C:\Users\Desktop\Python画图\static_16919367030710594_SparkApi_Python\test.py
Traceback (most recent call last):
File "C:\Users\\Desktop\Python画图\static_16919367030710594_SparkApi_Pyth
on\test.py", line 1, in <module>
import SparkApi
File "C:\Users\Desktop\Python画图\static_16919367030710594_SparkApi_Pyth
on\SparkApi.py", line 14, in <module>
import websocket # 使用websocket_client
ModuleNotFoundError: No module named 'websocket'
Process finished with exit code 1
安装websocket-client库
好的,说是没有websocket模块(websocket-client)。我这就去anaconda3安装模块。
pip install websocket-client
安装后就能正常运行了。
运行api文件
右键运行文件,在下面出现问题和回答方框。
可以在我:后面输入问题
在星火后面是你输入的问题提交给星火后,星火返回的tokens。当然提问的tokens也会算上的。
然后我觉得这个回答的样式太单调了。在api.py文件的main调用里面修改了一下样式。
修改使用的模型版本
在api.py文件中有下面这段代码:
#用于配置大模型版本,默认“general/generalv2”
domain = "general" # v1.5版本
# domain = "generalv2" # v2.0版本
#云端环境的服务地址
Spark_url = "ws://spark-api.xf-yun.com/v1.1/chat" # v1.5环境的地址
# Spark_url = "ws://spark-api.xf-yun.com/v2.1/chat" # v2.0环境的地址
现在出了个v3版本的,这里面没看到,盲猜一波generalv3,
ws://spark-api.xf-yun.com/v3.1/chat是在3.0版本的接口地址上写了的。
修改后的代码(发文不带上这代码部分)
'''
修改了:
接口认证信息(appid、appsecret、apikey)
回答时的人名格式等
没修改模型版本号
'''