CodeLlama-7b-Instruct
CodeLlama-7b-Instruct是Code Llama是由Meta AI研发并开源的一系列文本生成模型,旨在用于一般代码合成和理解。该模型参数规模为70亿。本文介绍了相关API。
功能介绍
调用本接口,发起一次文本续写请求。
在线调试
平台提供了 API在线调试平台-示例代码 ,用于帮助开发者调试接口,平台集成快速检索、查看开发文档、查看在线调用的请求内容和返回结果、复制和下载示例代码等功能,简单易用,更多内容请查看API在线调试介绍。
HTTP调用
鉴权说明
本文API,支持2种鉴权方式。不同鉴权方式,调用方式不同,使用Header、Query参数不同,详见本文请求说明。开发者可以选择以下任一种方式进行鉴权。
请求说明
- 基本信息
请求地址: https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/completions/codellama_7b_instruct
请求方式: POST
- Header参数
根据不同鉴权方式,查看对应Header参数。
访问凭证access_token鉴权
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
Content-Type | string | 是 | 固定值application/json |
基于安全认证AK/SK进行签名计算鉴权
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
Content-Type | string | 是 | 固定值application/json |
x-bce-date | string | 否 | 当前时间,遵循ISO8601规范,格式如2016-04-06T08:23:49Z |
Authorization | string | 是 | 用于验证请求合法性的认证信息,更多内容请参考鉴权认证机制,签名工具可参考IAM签名工具 |
- Query参数
只有访问凭证access_token鉴权方式,需使用Query参数。
访问凭证access_token鉴权
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
access_token | string | 是 | 通过API Key和Secret Key获取的access_token,参考Access Token获取 |
- Body参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
prompt | string | 是 | 请求信息 |
stream | bool | 否 | 是否以流式接口的形式返回数据,默认false |
temperature | float | 否 | 说明: (1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定 (2)范围 (0, 1.0],不能为0 |
top_k | int | 否 | Top-K 采样参数,在每轮token生成时,保留k个概率最高的token作为候选。说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)取值范围:正整数 |
top_p | float | 否 | 说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)取值范围 [0, 1.0] |
penalty_score | float | 否 | 通过对已生成的token增加惩罚,减少重复生成的现象。说明: (1)值越大表示惩罚越大 (2)取值范围:[1.0, 2.0] |
stop | List(String) | 否 | 生成停止标识。当模型生成结果以stop中某个元素结尾时,停止文本生成。说明: (1)每个元素长度不超过20字符。 (2)最多4个元素 |
user_id | string | 否 | 表示最终用户的唯一标识符 |
响应说明
名称 | 类型 | 描述 |
---|---|---|
id | string | 本轮对话的id |
object | string | 回包类型。chat.completion:文本生成返回 |
created | int | 时间戳 |
sentence_id | int | 表示当前子句的序号。只有在流式接口模式下会返回该字段 |
is_end | bool | 表示当前子句是否是最后一句。只有在流式接口模式下会返回该字段 |
result | string | 对话返回结果 |
is_safe | bool | 1:表示输入内容无安全风险 0:表示输入内容有安全风险 |
usage | usage | token统计信息 |
usage说明
名称 | 类型 | 描述 |
---|---|---|
prompt_tokens | int | 问题tokens数 |
completion_tokens | int | 回答tokens数 |
total_tokens | int | tokens总数 |
注意 :同步模式和流式模式,响应参数返回不同。
- 同步模式下,响应参数为以上字段的完整json包。
- 流式模式下,各字段的响应参数为 data: {响应参数}。
请求示例(单轮)
以访问凭证access_token鉴权方式为例,说明如何调用API,示例如下。
# 步骤一,获取access_token,替换下列示例中的应用API Key与应用Secret Key
curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]'
# 步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的“调用接口获取的access_token”
curl -X POST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/completions/codellama_7b_instruct?access_token=[步骤一调用接口获取的access_token]' -d '{
"prompt":"In Bash, how do I list all text files in the current directory (excluding subdirectories) that have been modified in the last month"
}' | iconv -f utf-8 -t utf-8
import requests
import json
def get_access_token():
"""
使用 API Key,Secret Key 获取access_token,替换下列示例中的应用API Key、应用Secret Key
"""
url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]"
payload = json.dumps("")
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
return response.json().get("access_token")
def main():
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/completions/codellama_7b_instruct?access_token=" + get_access_token()
payload = json.dumps({
"prompt":"In Bash, how do I list all text files in the current directory (excluding subdirectories) that have been modified in the last month"
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
if __name__ == '__main__':
main()
响应示例(单轮)
{
"id": "as-kkk0em6hmv",
"object": "chat.completion",
"created": 1703581581,
"result": "To list all text files in the current directory (excluding subdirectories) that have been modified in the last month, you can use the following command:\n```\nfind . -type f -name \"*.txt\" -mtime -1 -print\n```\nHere's how the command works:\n\n* `find`: The command to find files based on various criteria.\n* `.`: The current directory.\n* `-type f`: The file type to search for. In this case, we're looking for files with the extension `.txt`.\n* `-name \"*.txt\"`: The name of the file to search for. The `\"*.txt\"` pattern matches any file with the `.txt` extension.\n* `-mtime -1`: The modification time of the file. The `-1` indicates that we're looking for files that have been modified in the last month.\n* `-print`: The action to take for each file found. In this case, we're printing the file name.\n\nThis command will list all text files in the current directory that have been modified in the last month.",
"is_safe": 1,
"usage": {
"prompt_tokens": 29,
"completion_tokens": 218,
"total_tokens": 247
}
}
请求示例(流式)
# 步骤一,获取access_token,替换下列示例中的应用API Key与应用Secret Key
curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]'
# 步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的“调用接口获取的access_token”
curl -X POST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/completions/codellama_7b_instruct?access_token=[步骤一调用接口获取的access_token]' -d '{
"prompt":"In Bash, how do I list all text files in the current directory (excluding subdirectories) that have been modified in the last month",
"stream": true
}'
import requests
import json
def get_access_token():
"""
使用 API Key,Secret Key 获取access_token,替换下列示例中的应用API Key、应用Secret Key
"""
url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]"
payload = json.dumps("")
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
return response.json().get("access_token")
def main():
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/completions/codellama_7b_instruct?access_token=" + get_access_token()
payload = json.dumps({
"prompt":"In Bash, how do I list all text files in the current directory (excluding subdirectories) that have been modified in the last month",
"stream": True
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload, stream=True)
for line in response.iter_lines():
print(line.decode('UTF-8'))
if __name__ == '__main__':
main()
响应示例(流式)
data: {"id":"as-6653kq8uk1","object":"chat.completion","created":1703581827,"sentence_id":0,"is_end":false,"result":"You can use the `find` command with the `-mtime` option to list all text files in the current directory that have been modified in the last","is_safe":1,"usage":{"prompt_tokens":29,"completion_tokens":35,"total_tokens":64}}
data: {"id":"as-6653kq8uk1","object":"chat.completion","created":1703581828,"sentence_id":1,"is_end":false,"result":" month.\n\nHere's an example command:\n```\nfind . -type f -name \"*.txt\" -mtime -30\n","is_safe":1,"usage":{"prompt_tokens":29,"completion_tokens":18,"total_tokens":82}}
data: {"id":"as-6653kq8uk1","object":"chat.completion","created":1703581829,"sentence_id":2,"is_end":false,"result":"```\nExplanation:\n\n* `.` represents the current directory.\n* `-type f` specifies that we want to find files (not","is_safe":1,"usage":{"prompt_tokens":29,"completion_tokens":24,"total_tokens":106}}
data: {"id":"as-6653kq8uk1","object":"chat.completion","created":1703581830,"sentence_id":3,"is_end":false,"result":" directories).\n* `-name \"*.txt\"` specifies that we want to find files with the \".txt\" extension.\n* `-mtime -3","is_safe":1,"usage":{"prompt_tokens":29,"completion_tokens":24,"total_tokens":130}}
data: {"id":"as-6653kq8uk1","object":"chat.completion","created":1703581831,"sentence_id":4,"is_end":false,"result":"0` specifies that we want to find files that have been modified in the last 30 days.\n\nThis command will list all text files in","is_safe":1,"usage":{"prompt_tokens":29,"completion_tokens":32,"total_tokens":162}}
data: {"id":"as-6653kq8uk1","object":"chat.completion","created":1703581832,"sentence_id":5,"is_end":true,"result":" the current directory that have been modified in the last month.","is_safe":1,"usage":{"prompt_tokens":29,"completion_tokens":14,"total_tokens":176}}
SDK调用
平台支持通过Python SDK、Go SDK、Java SDK 和 Node.js SDK调用本文API,SDK调用说明文档请参考推理服务V1-续写Completions文档。
错误码
如果请求错误,服务器返回的JSON文本包含以下参数。
名称 | 描述 |
---|---|
error_code | 错误码 |
error_msg | 错误描述信息,帮助理解和解决发生的错误 |
例如Access Token失效返回内容,需要重新获取新的Access Token再次请求。
{
"error_code": 110,
"error_msg": "Access token invalid or no longer valid"
}
更多相关错误码,请查看错误码说明。