浅试通义千问大模型API调用

时间: 2024-10-09 11:26:11

何为“通义千问”?

"通义千问大模型"是阿里云推出的一个超大规模的语言模型,具有强大的归纳和理解能力,可以处理各种自然语言处理任务,包括但不限于文本分类、文本生成、情感分析等。此模型能够极大地提高了自然语言处理的效率和准确性,给用户提供了一种新的、简便的工具。

通义千问全面开放

2023年9月13号,阿里云宣布通义千问大模型已首批通过备案,并正式向公众开放,企业用户可以通过阿里云调用通义千问API。

试用通义千问

前提条件
  • 注册一个阿里云账户并实名
  • python 3.7以上的环境
开通DashScope灵积模型服务

在阿里云主页搜索框搜索‘模型服务灵积’,在该页面点击立即开通,随后按步骤开通即可。

创建API-KEY

点击产品控制台,在API-KEY管理页面创建新的API-KEY

安装DashScope SDK

执行如下命令,通过pip安装SDK。

pip install dashscope
在IDE中通过messages调用

创建一个Python文件,将下述代码贴进文件即可运行

from http import HTTPStatus
from dashscope import Generation
import dashscope
from dashscope.api_entities.dashscope_response import Role


def call_with_messages():
    dashscope.api_key = 'YOUR_API_KEY' # 将 YOUR_API_KEY 改成您创建的 API-KEY
    systemRole = input("请告诉我,我是什么角色:")
    userRole = input("请告诉我你要问什么:")
    messages = [{'role': 'system', 'content': systemRole}, 
                {'role': 'user', 'content': userRole}]
    gen = Generation()
    response = gen.call(
        Generation.Models.qwen_turbo,
        messages=messages,
        result_format='message', # 设置结果为消息格式
    )
    if response.status_code == HTTPStatus.OK:   
        print(response.output.choices[0]['message']['content'])  
        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
        ))
    while 1:
        question = input("还有什么问题吗?")
        if question == '':
            break
        messages.append({'role': Role.USER, 'content': question})
        response = gen.call(
            Generation.Models.qwen_turbo,
            messages=messages,
            result_format='message', # 设置结果为消息格式
        )
        if response.status_code == HTTPStatus.OK:   
            print(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
            )) 
if __name__ == '__main__':
    call_with_messages()

我们来出两个测试题,让通义千问试着回答,看能给出怎样的答案。

先让它作为一个全能小帮手,写个上云迁移方案看看。

来个三段论推理提问。

再来个健康分析师,看看它会不会让你多喝热水。

通义千问的中文生成能力如何不是本次试用的任务,需要更为复杂的任务和问题来做测试。

以上就是通义千问本地部署试用的内容,想要了解更多语言模型及模型私有化部署,欢迎企微或电话咨询客服小姐姐。