开放文档

Warning

  • 最后更新于2022.10.12
  • WeLM 提供续写功能,但并不具有原生对话能力

开发者交流

欢迎各位开发者将您遇到的问题和场景等描述后发送至我们的邮箱 wechat_ai@tencent.com

接口说明

Warning

  • 每个账户每日免费请求WeLM服务有配额限制,每生成一个字符消耗一个资源配额,请妥善配置生成序列的个数(n)和生成token个数(max_tokens),以免快速用完您的配额;
  • 请求服务时有频率限制;

具体限制请查看邮件。

获取API Token

填写问卷:WeLM Application Form ,我们会将API Token发送至您的邮箱。每个邮箱只能注册一个token。

调用接口

curl -H 'Content-Type: application/json' -H 'Authorization: Bearer your_api_token' \
https://welm.weixin.qq.com/v1/completions -d \
'{
    "prompt":"测试",
    "model":"xl",
    "max_tokens":16,
    "temperature":0.0,
    "top_p":0.0,
    "top_k":10,
    "n":1,
    "echo":false,
    "stop":",,.。"
}'

Request body


  • model: string 必选,要使用的模型名称,当前支持的模型名称有mediumlargexl
  • prompt: string 可选,默认值空字符串,给模型的提示
  • max_tokens: integer 可选,最多生成的token个数,默认值 16
  • temperature: number 可选 默认值 0.85,表示使用的sampling temperature,更高的temperature意味着模型具备更多的可能性。对于更有创造性的应用,可以尝试0.85以上,而对于有明确答案的应用,可以尝试0(argmax采样)。 建议改变这个值或top_p,但不要同时改变。
  • top_p: number 可选 默认值 0.95,来源于nucleus sampling,采用的是累计概率的方式。即从累计概率超过某一个阈值p的词汇中进行采样,所以0.1意味着只考虑由前10%累计概率组成的词汇。 建议改变这个值或temperature,但不要同时改变。
  • top_k: integer 可选 默认值50,从概率分布中依据概率最大选择k个单词,建议不要过小导致模型能选择的词汇少。
  • n: integer 可选 默认值 1 返回的序列的个数
  • echo: boolean 可选 默认值false,是否返回prompt
  • stop: string 可选 默认值 null,停止符号。当模型当前生成的字符为stop中的任何一个字符时,会停止生成。若没有配置stop,当模型当前生成的token id 为end_id或生成的token个数达到max_tokens时,停止生成。合理配置stop可以加快推理速度、减少quota消耗。

Warning

  • prompt长度 + max_tokens <= 2048, max_tokens <= 1024
  • n: 大于0, 小于等于12

Response

{
    "id":"25ade274-2f8a-11ed-8c3d-1767c0ccef73",
    "object":"text_generation",
    "created":1662650590,
    "model":"xl",
    "choices":[
        {
            "text":"测试结果",
            "index":0,
            "logprobs":0,
            "finish_reason":"finished",
        }
    ]
}

状态码
当请求出现错误时,通过校验http state code 可以查看错误原因

Info

  • 超时:504
  • 服务不可用:503
  • 用户prompt命中敏感词:400, finish_reason: “error: content policy violation”
  • 生成结果命中敏感词:200, finish_reason: “error: internal error”
  • 用户输入参数不合法:400, finish_reason返回原因
  • 配额超限制:429, response body: “quota limit exceed”
  • 请求频率超限制:429, response body: “rate limit exceeded”

QA

  • 为什么模型没有返回结果?
    • 您可以检查返回的状态码以及finish_reason,查看是否为对应的错误
    • 检查request中的stop设置是否合理,有可能是模型生成的第一个字符恰好为stop中的字符,导致没有结果。