Theme-Logo
    • 通知公告
  • [登录]/[注册]
  • D 返回首页
学习园地
  • 编程专栏

使用函数计算部署通义千问大模型实现AI对话

使用函数计算部署通义千问大模型实现AI对话
  • 返回首页

通义千问是阿里云自主研发的大语言模型,能够在用户自然语言输入的基础上,通过自然语言理解和语义分析,在不同领域、任务内为用户提供服务和帮助。本文介绍如何通过函数计算实现基于通义千问的AI对话。


背景信息

通义千问模型接受用户以文本形式的指令(prompt)以及不定轮次的对话历史(history)作为输入,并基于这些信息生成回复作为输出。在这一过程中,文本将被转换为语言模型可以处理的Token序列。Token是模型用来表示自然语言文本的基本单位,可以直观地理解为“字”或“词”。对于中文文本来说,1个Token通常对应一个汉字;对于英文文本来说,1个Token通常对应3至4个字母或1个单词。例如,中文文本“你好,我是通义千问”会被转换成序列['你', '好', ',', '我', '是', '通', '义', '千', '问'],而英文文本"Nice to meet you."则会被转换成['Nice', ' to', ' meet', ' you', '.']。

由于模型调用的计算量与Token序列长度相关,输入或输出Token数量越多,模型的计算时间越长,我们将根据模型输入和输出的Token数量计费。可以从API返回结果的usage字段中了解到您每次调用时使用的Token数量。您也可以使用Token计算器或者调用Token计算API来预估文本对应的Token数量。

通义千问支持的模型如下:


截屏2024-10-07 21.43.53.png


前提条件

获取API-KEY。登录百炼控制台,在右上角单击image > API-KEY进入我的API-KEY页面,获取已有API-KEY或重新创建API-KEY。

p853618.png


步骤一:创建Web函数

  1. 登录函数计算控制台,在左侧导航栏,单击函数,选择地域,然后单击创建函数。

  2. 在创建函数页面,选择Web函数,重点设置以下配置项,然后单击创建。

    • 设置函数代码、角色等相关配置。

p853631.png


p853630.png

设置环境变量。变量DASHSCOPE_API_KEY的值为您从百炼控制台获取的API-KEY。

p853632.png



步骤二:编写并部署通义千问AI对话代码

函数创建成功后,您可以开始编写使用通义千问的AI对话代码。

  1. 在函数详情页面,单击代码页签,在代码编辑器中编写代码。

    以下代码是以Python为例,通过调用通义千问模型对一个用户指令进行响应。

说明 

当前示例代码支持一键部署,您可以单击右侧按钮,然后根据提示完成一键部署。如果您选择一键部署当前应用,则无需再手动执行安装DashScope SDK等操作。start-qwen-api-messages


import dashscopeimport randomfrom flask import abortfrom flask import Flaskfrom flask import requestfrom http import HTTPStatus

app = Flask(__name__)def call_with_messages(content):
    messages = [{'role': 'system', 'content': 'You are a helpful assistant.'},
                {'role': 'user', 'content': content}]
    response = dashscope.Generation.call(
        dashscope.Generation.Models.qwen_turbo,
        messages=messages,        # set the random seed, optional, default to 1234 if not set
        seed=random.randint(1, 10000),
        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
        ))    return response@app.route("/invoke", methods=['POST', 'GET'])def index():    bytes = request.stream.read()    if bytes:
        payload = str(bytes, encoding='utf-8')        print("Request Payload: " + payload)        return call_with_messages(payload)    else:
        abort(403)      
if __name__ == "__main__":
    app.run(host="0.0.0.0", port=9000)

在WebIDE的终端窗口,执行pip3 install dashscope -t .安装DashScope SDK,执行完成后单击部署代码。

p853642.png


步骤三:测试函数

在函数详情页面,单击测试页签,填写事件名称和事件内容,然后单击测试函数,执行完成后,可以直接查看执行结果。


p853645.png


本文事件内容以"如何做西红柿炖牛腩?"为例,测试函数的返回结果如下:


{
    "code": "",
    "message": "",
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "content": "材料:\n牛腩500克、西红柿2个、大葱1根、生姜3片、大蒜2瓣、八角1颗、香叶2片、干辣椒4个、料酒1勺、生抽1勺、老抽1勺、白糖1小勺、食盐适量、清水适量。\n\n做法:\n1. 牛腩切块,冷水入锅,加入料酒焯水,撇去浮沫后捞出沥水备用。\n2. 热锅凉油,放入大葱、姜片、蒜瓣、八角、香叶和干辣椒煸炒出香味。\n3. 加入西红柿翻炒至软烂出汁。\n4. 放入牛腩块继续翻炒均匀,加入生抽、老抽和白糖调味。\n5. 倒入足够的清水,大火烧开后转中小火慢炖1小时左右,至牛腩熟透且汤汁浓稠。\n6. 最后加入适量的食盐调味即可。",
                    "role": "assistant"
                }
            }
        ],
        "finish_reason": null,
        "text": null
    },
    "request_id": "61dbd6b0-810b-9115-ad26-65e9ba93f84d",
    "status_code": 200,
    "usage": {
        "input_tokens": 15,
        "output_tokens": 212,
        "total_tokens": 227
    }}

测试完成后,如果您暂时不需要使用此应用,请及时删除应用以及关联的其他资源。


回顶部