文本生成文本
Chat Completion
介绍
聊天补全是一项强大的功能,它使开发者能够构建能够进行动态和互动对话的应用程序。它采用了与文本补全功能相同的底层模型,但专为处理多轮对话而设计。
在基于聊天的模型中,您发送一个消息列表作为提示,而不是仅仅一个单一的字符串。列表中的每条消息都有两个属性:'role'和'content'。'role'可以是'system'、'user'或'assistant',而'content'则包含了角色所发出的消息文本。
系统角色用于设置助手的行为,用户角色则向助手提供指令,而助手角色则包含了助手的响应。模型通过对话历史生成助手的回复。
这一功能为创建交互式和动态的应用程序开启了新的可能性,例如虚拟助手、聊天机器人等等。
最佳实践
聊天补全功能的工作方式与文本补全功能类似,但它接受的是一系列消息作为输入,而不是单一的提示。以下是您可以使用OpenAI聊天补全的示例:
curl -X POST 'https://genaiapi.cloudsway.net/v1/ai/sVUARttwSjilLOZY/chat/completions' -H 'Authorization: Bearer YOU_API_KEY' -H 'Content-Type: application/json' --data '{
"model": "gpt-4",
"messages": [
{
"role": "user",
"content": "hello"
}
]
}'
在这个例子中,我们向聊天补全端点发送了一个POST请求,带有以下参数:
model
:用于完成的模型的名称(例如,gpt-4-turbo)。这个参数是可选的,因为我们已经在Cloudsway端点的上游包含了它。messages
:包含对话历史的消息列表。每条消息都有一个'role'和'content'属性。
对于其他查询参数,您可以参考OpenAI API文档以获取更多详细信息。
聊天补全的响应将是一个包含助手生成回应的JSON对象。例如:
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"logprobs": null,
"messages": [
{
"role": "assistant",
"content": "I'm doing well, thank you for asking. How can I help you today?"
}
]
}
],
"created": 1632345678,
"model": "gpt-4-turbo",
"object": null,
"system_fingerprint": null,
"usage": {
"completion_tokens": 100,
"prompt_tokens": 20,
"total_tokens": 120
}
}
您可以使用生成的回应来继续对话或在您的应用程序中显示。聊天补全功能允许您为您的用户创建吸引人的交互式聊天体验。
无缝集成
这是一个如何将Cloudsway与Python OpenAI库集成的示例:
from openai import OpenAI
from openai import OpenAI
client=OpenAI(
base_url="https://genaiapi.cloudsway.net/v1/ai/zUcfeMfrpNqyEhTN",
api_key='YOUR_API_KEY'
)
message_text = [{"role":"user","content":"what's 1+1? Answer in one word."}]
completion = client.chat.completions.create(
model="", # model = "deployment_name"
messages = message_text,
temperature=0.7,
max_tokens=800,
top_p=0.95,
)
print(completion)
通过遵循这些步骤,您可以有效地使用OpenAI聊天补全来根据对话历史生成回应。尝试使用不同的消息和参数来为您的用户创建吸引人的聊天体验。
Stream Completion
流补全是一个强大的功能,允许开发者构建能够进行动态和交互式对话的应用程序。它使用与文本补全功能相同的底层模型,但是设计用来处理连续的消息流。唯一的区别是消息是以连续的流发送的,而不是一次性的批量。所以你可以在请求中添加stream
参数。例如:
curl -X POST 'https://genaiapi.cloudsway.net/v1/ai/sVUARttwSjilLOZY/chat/completions' -H 'Authorization: Bearer YOU_API_KEY' -H 'Content-Type: application/json' --data '{
"model": "gpt-4",
"messages": [
{
"role": "user",
"content": "hello"
}
],
"stream": True
}'
在Python中的参数是:
completion = client.chat.completions.create(
model="", # model = "deployment_name"
stream = True,
messages = message_text,
temperature=0.7,
max_tokens=800,
top_p=0.95,
)
流补全的响应将是一个包含助手生成回应的JSON对象。例如:
{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-3.5-turbo-0125", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
您可以使用生成的回应来继续对话或在您的应用程序中显示。流补全功能允许您为您的用户创建吸引人的实时交互式聊天体验。
多模态
介绍
多模态模型是一种能够处理和理解多种类型数据(如文本、图像、音频等)的人工智能模型。与单模态模型不同,多模态模型能够融合来自不同模态的信息,从而提供更全面和准确的理解和生成能力。例如,MaaS 4o 是一个多模态模型,能够处理文本和图像输入,并生成相应的输出。
最佳实践
以下是一个使用 MaaS 4o 处理文本和图像输入的最佳实践示例代码,输入食物图片,MaaS 4o来分析食物中的成分以及卡路里
{
"messages": [
{
"role": "system",
"content": "假设你是食品专家,你需要根据提供的图片分析出成分和卡路里,用json的方式返回"
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "分析一下"
},
{
"type": "image_url",
"image_url": {
"url": "https://img0.baidu.com/it/u=4078772867,1411546811&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=500"
}
}
]
}
],
"stream": false,
"stream_options": {
"include_usage": true
}
}
在此示例中,我们向完成端点发送POST请求,带有以下参数:
role
:表示消息的角色,可以是 "system"(系统)、"user"(用户)或 "assistant"(助手)。content
:消息的内容,根据角色的不同,内容的格式也会不同。stream
: 一个布尔值,表示是否使用流式传输(streaming)。在这个例子中,值为 false ,表示不使用流式传输。
完成响应将是一个包含生成文本的 JSON 对象。例如:
{
"created": 1721984825,
"usage": {
"completion_tokens": 313,
"prompt_tokens": 248,
"total_tokens": 561
},
"model": null,
"id": "chatcmpl-9pBCjZZoDwaTKYjiRz5HomWHnSEZC",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"role": "assistant",
"function_call": null,
"tool_calls": null,
"content": "这是一张汉堡的图片。根据图片可以看到,它包含以下成分:\n\n- 芝麻小圆面包 (顶部和底部)\n- 生菜\n- 番茄片\n- 培根片\n- 烤肉饼\n- 可能还有一些酱料(例如蛋黄酱或沙拉酱)\n\n以下是每种成分的大致卡路里分析:\n\n1. **芝麻小圆面包**(上下两片):约 150 卡路里\n2. **生菜**:约 5 卡路里\n3. **番茄片**:约 10 卡路里\n4. **培根片(2-3 片)**:约 120 卡路里\n5. **烤肉饼**:约 250 卡路里\n6. **酱料**:约 50 卡路里\n\n综合计算出大致总热量如下:\n\n```json\n{\n \"components\": {\n \"sesame_bun\": 150,\n \"lettuce\": 5,\n \"tomato_slices\": 10,\n \"bacon_slices\": 120,\n \"grilled_beef_patty\": 250,\n \"sauce\": 50\n },\n \"total_calories\": 585\n}\n```\n\n请注意,这只是一个大致估算,实际热量可能会因为成分的量和种类不同而变化。"
},
"logprobs": null
}
],
"system_fingerprint": null,
"object": "chat.completion"
}
Completion
介绍
文本补全旨在根据给定的提示生成类似人类的文本。通过提供部分句子或段落作为输入,完成模型可以生成连贯且与上下文相关的文本来完成提示。
补全模型使用先进的深度学习技术,如变换器,来理解输入文本的上下文和语义。它已经在互联网上的大量多样化数据上进行了训练,使其能够在各种领域和主题上生成高质量的文本。
以Azure OpenAI为例,使用OpenAI补全,开发人员和研究人员可以自动化生成文本的过程,用于广泛的应用,包括内容生成,聊天机器人,语言翻译等等。凭借其生成自然流畅文本的能力,OpenAI补全已经成为自然语言处理领域的宝贵工具。
最佳实践
补全模型的工作方式是以提示作为输入,基于该提示生成文本的续写。以下是您可以使用OpenAI补全的方式:
curl -X POST 'https://genaiapi.cloudsway.net/v1/ai/zUcfeMfrpNqyEhTN/completions' -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' --data '{
"model": "gpt-4",
"prompt":"Once upon a time, there was a",
"temperature":0.7,
"max_tokens":100
}'
在此示例中,我们向完成端点发送POST请求,带有以下参数:
model
:用于完成的模型名称(例如,gpt-4-turbo),这是可选的,因为我们已经在cloudsway端点的上游包含了此参数。prompt
:作为模型输入的部分文本(例如,“从前,有一个”)。temperature(可选)
:控制生成文本随机性的参数。更高的温度值会导致更多样化和创新的输出,默认值为1。max_tokens
:完成中生成的最大令牌数。
对于其他查询参数,您可以参考 OpenAI API 文档以获取更多详细信息。
完成响应将是一个包含生成文本的 JSON 对象。例如:
{
"choices": [
{
"finish_reason": "length",
"index": 0,
"logprobs": null,
"text": "名叫灰姑娘的美丽公主。她和她的恶毒继母以及两个继姐一起住在森林中的一个小屋子里。一天,她收到了去皇家舞会的邀请,在那里她遇到了王子并坠入了爱河。当钟敲响午夜时,她不得不匆忙离开,留下了她的玻璃鞋。王子搜遍了整个王国来找她,当他找到她时,他们过上了幸福的生活。"
}
],
"created": 1632345678,
"model": "gpt-4-turbo",
"object": null,
"system_fingerprint": null,
"usage": {
"completion_tokens": 100,
"prompt_tokens": 10,
"total_tokens": 110
}
}
您可以将生成的文本用于各种目的,例如在网站上显示,保存到文件,或用作进一步处理的输入。
无缝集成
以下是一个如何将Cloudsway与Python OpenAI库集成的示例:
from openai import OpenAI
client=OpenAI(
base_url="https://genaiapi.cloudsway.net/v1/ai/zUcfeMfrpNqyEhTN",
api_key='YOUR_API_KEY'
)
message_text = [{"role":"user","content":"1+1等于多少?用一个词回答。"}]
completion = client.completions.create(
model="", # model = "deployment_name"
prompt="1加1等于?",
temperature=0.7,
max_tokens=800,
top_p=0.95,
)
print(completion)
通过遵循这些步骤,您可以有效地使用OpenAI完成来根据您的提示生成文本。尝试使用不同的提示和参数来获得所需的输出。