函数计算中,使用 通义千问模型, 客户端如何通过http接口调用呢?在什么地方能有文档?

函数计算中, iwEcAqNwbmcDAQTRA84F0QHIBrCxl3QaPh9fKwV5YntCpXYAB9IA59s4CAAJomltCgAL0gADnJE.png_720x720q90.jpg 使用 通义千问模型, 客户端如何通过http接口调用呢?在什么地方能有文档。

展开
收起
多麻辣哦 2024-01-03 12:40:50 110 分享 版权
阿里云 AI 助理回答

在函数计算中使用通义千问模型并通过HTTP接口调用,可以按照以下步骤进行操作。以下是详细的配置和调用方法:


1. 前提条件

在开始之前,请确保完成以下准备工作: - 获取API-KEY:登录阿里云百炼控制台,进入“我的API-KEY”页面,获取或创建API-KEY。 - 部署函数:通过函数计算控制台创建Web函数,并将API-KEY配置为环境变量DASHSCOPE_API_KEY


2. 创建Web函数

步骤一:创建函数

  1. 登录函数计算控制台。
  2. 在左侧导航栏中选择目标地域,单击创建函数
  3. 选择Web函数,并设置以下关键配置:
    • 函数代码:编写调用通义千问模型的代码(见下文示例)。
    • 环境变量:添加变量DASHSCOPE_API_KEY,值为您的API-KEY。
  4. 单击创建完成函数创建。

步骤二:编写代码

以下是一个基于Python的示例代码,展示如何通过HTTP接口调用通义千问模型:

import dashscope
from flask import Flask, request
from 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(
        model='qwen-turbo',  # 指定模型名称
        messages=messages,
        result_format='message'  # 设置返回结果格式为message
    )
    if response.status_code == HTTPStatus.OK:
        return response
    else:
        return {
            'error': {
                'request_id': response.request_id,
                'status_code': response.status_code,
                'code': response.code,
                'message': response.message
            }
        }

@app.route("/invoke", methods=['POST'])
def index():
    payload = request.get_data(as_text=True)  # 获取请求体内容
    return call_with_messages(payload)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=9000)

3. 配置HTTP触发器

  1. 在函数计算控制台中,找到已创建的函数。
  2. 单击触发器页签,然后单击创建触发器
  3. 选择HTTP触发器,并设置以下参数:
    • 触发器名称:自定义名称。
    • 认证方式:建议选择匿名访问函数签名
    • 请求方法:支持GET、POST等方法。
  4. 单击确定完成触发器配置。

4. 客户端调用

客户端可以通过HTTP请求调用函数,具体步骤如下:

请求URL

  • URL格式:http://<http-trigger-id>.<region-id>.fcapp.run/invoke
  • 示例:http://my-function.cn-hangzhou.fcapp.run/invoke

请求方法

  • 支持POST方法。

请求示例

以下是一个使用curl命令调用函数的示例:

curl -X POST \
     -H "Content-Type: application/json" \
     -d '{"content": "Find the value of x that satisfies the equation 4x+5 = 6x+7."}' \
     http://my-function.cn-hangzhou.fcapp.run/invoke

响应示例

成功调用后,返回结果如下:

{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "The value of x is -1."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 42,
    "completion_tokens": 331,
    "total_tokens": 373
  }
}

5. 注意事项

  • Token计费:调用通义千问模型时,费用与输入和输出的Token数量相关。您可以通过API返回结果中的usage字段查看Token使用情况。
  • 冷启动问题:如果函数长时间未被调用,可能会出现冷启动延迟。建议通过设置实例并发度或保持实例活跃来优化性能。
  • 流式响应:目前仅支持通过自定义运行时或容器镜像实现流式响应(SSE)。如果需要流式响应,请参考相关文档。

6. 文档参考

更多详细信息可参考以下文档: - 通义千问API参考 - HTTP触发器调用函数 - 使用函数计算部署通义千问大模型实现AI对话

通过以上步骤,您可以成功通过HTTP接口调用通义千问模型,并实现AI对话功能。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

快速交付实现商业价值。

还有其他疑问?
咨询AI助理