赞
踩
模型的主要用途是预测或描述一个系统或现象的行为模式。它可以帮助人们更好地理解这个系统或现象,例如预测股市变化、天气预报、地震预警、交通流量等。模型也常用于设计和优化产品和工艺。在科学研究中,模型也是一种方法,用于测试和验证理论。总之,模型是一个用于描述和预测现实世界的简化表示。
最近,阿里云的通义千问Qwen-72b大模型宣布开源了!现可以在魔撘社区(点击跳转)免费体验,也可通过官方限时免费开放的api使用。本文就将讲解如何使用官方api
注册
创建后点击API-KEY管理
创建新的API_KEY(一定记住且不要随意给别人)
搭建Python环境这里忽略,搭建好环境后安装
pip install dashscope
设置API_KET的方法有很多种,这里只讲python代码中添加
- import random
- from http import HTTPStatus
-
- import dashscope
- from dashscope.api_entities.dashscope_response import Role
-
- dashscope.api_key = "你的api-key"
- # 需要导入from dashscope.api_entities.dashscope_response import Role
- {
- "role": Role.USER, # 此处是 'user',代表着用户
- "content": "content" # 此处用户输入的内容
- }
-
- {
- "role": Role.SYSTEM # 此处是 'system',代表着是此次对话的标题(用过chatgpt的应该了解)
- "content": "content" # 此处是对话的第一句话也是标题。
- }
-
- {
- "role": Role.ASSISTANT # 此处是 'assistant',代表着机器人(api)
- "content": "content" # 机器人的输出
- }
-
- # 这些都用一个列表存储在一起
- # 因此,我们可以通过这种方式存储对话的缓存,也可以自定义对话内容。
- def call_with_messages(content: str):
- messages = [
- {'role': 'user', 'content': content}]
- response = dashscope.Generation.call(
- 'qwen-72b-chat', # 采用模型
- messages=messages, # 信息列表
- result_format='message', # 设置格式为message
- )
- if response.status_code == HTTPStatus.OK:
- return response.output.choices[0]['message']['content']
- else:
- print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
- response.request_id, response.status_code,
- response.code, response.message
- ))
-
-
- while True:
- content = input("user>")
- print(call_with_messages(content))
这就是最简单的调用,但是没有缓存缓存记录。
- def multi_round_conversation(content: str):
- messages = [
- {'role': Role.SYSTEM, 'content': '我是谁'},
- {'role': Role.USER, 'content': '我是PYmili,你记住了!'},
- {'role': Role.ASSISTANT, 'content': '好的,我记住了!'}
- ]
- response = dashscope.Generation.call(
- 'qwen-72b-chat',
- messages=messages,
- # 设置一个种子,并不是必要参数
- seed=random.randint(1, 10000),
- result_format='message',
- )
- if response.status_code == HTTPStatus.OK:
- print(response)
- messages.append(
- {
- 'role': response.output.choices[0]['message']['role'],
- 'content': response.output.choices[0]['message']['content']
- }
- )
- else:
- print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
- response.request_id, response.status_code,
- response.code, response.message
- ))
- messages.append({'role': Role.USER, 'content': content})
- response = dashscope.Generation.call(
- 'qwen-72b-chat',
- messages=messages,
- result_format='message'
- )
- 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
- ))
-
- print(messages)
messages中将存放所有对话缓存。
- def call_stream_with_messages():
- messages = [
- {'role': 'user', 'content': '用c语言写一个插入算法。'}
- ]
- responses = dashscope.Generation.call(
- 'qwen-72b-chat',
- messages=messages,
- seed=random.randint(1, 10000), # set the random seed, optional, default to 1234 if not set
- result_format='message', # set the result to be "message" format.
- stream=True,
- output_in_full=True # get streaming output incrementally
- )
- full_content = ''
- for response in responses:
- if response.status_code == HTTPStatus.OK:
- full_content += response.output.choices[0]['message']['content']
- 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
- ))
- print('Full content: \n' + full_content)
这样将会对于机器人输出长字符串,很好的优化。就可以实现机器人在打字的效果。
更详细的内容可以到官网文档(点我跳转)看看
好的,这就是本篇文章内容,有问题的话,可以联系我:Q群 706128290
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。