本地化API调用
这里应用阿里云的"通义千问"
官方教程:如何快速开始通义千问_模型服务灵积(DashScope)-阿里云帮助中心
API获取链接:如何开通DashScope并创建API-KEY_模型服务灵积(DashScope)-阿里云帮助中心
代码解析
官方代码
from http import HTTPStatus
import dashscope
dashscope.api_key='your-dashscope-api-key'
messages = [{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '如何做西红柿鸡蛋?'}]
response = dashscope.Generation.call(
model='qwen-turbo',
messages=messages,
result_format='message', # set the result to be "message" format.
)
if response.status_code == HTTPStatus.OK:
print(response)
else:
print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
response.request_id, response.status_code,
response.code, response.message
))
输出格式为:
{'status_code': 200,
'request_id': 'b8a454a3-ec0b-9064-b2fa-024d03bcb894',
'code': '',
'message': '',
'output': {'text': 'Hello! How can I help you today?',
'finish_reason': 'stop',
'choices': None},
'usage': {'input_tokens': 20,
'output_tokens': 9,
'total_tokens': 29}
}
根据官方的介绍
output.token_ids: 本次输入文本对应的token_ids output.tokens: 本次输入文本对应的tokens usage.input_tokens: 输入文本对应的token数目 request_id: 本次请求的系统唯一码 output.text:内容返回结果
详细内容链接:异步任务管理接口和设置_模型服务灵积(DashScope)-阿里云帮助中心
我自己的代码只要实现输出结果就行了,顺便再复习一下
# For prerequisites running the following sample, visit https://help.aliyun.com/document_detail/611472.html
from http import HTTPStatus
import dashscope
dashscope.api_key = 'your-dashscope-api-key' # 填入第一步获取的APIKEY
def call_with_messages(problem):
# Define system messages and user messages
messages = [
# 这句话是系统角色发送给用户的一条消息,它的作用是向用户确认他们正在和一个有帮助的助手进行对话。这种提示信息可以让用户知道他们得到了有效的支持和指导,并增加对话的友好性和透明度。
{'role': 'system', 'content': 'You are a helpful assistant.'}, # 可用于给定语言模型预设定的作用。
# 用于提问
{'role': 'user', 'content': f'{problem}'}
]
# 调用Dashscope API生成响应
response = dashscope.Generation.call(
dashscope.Generation.Models.qwen_plus,
messages=messages,
result_format='qwen-plus', # set the result to be "message" format.
)
if response.status_code == HTTPStatus.OK:
return response
else:
# print error code
print('Request id: %s\n Status code: %s\n error code: %s\n error message: %s' % (
response.request_id, response.status_code,
response.code, response.message))
if __name__ == '__main__':
problem = input()
result = call_with_messages(problem)
text_content = result['output']['text']
print(text_content)