跳转至

文本生成文本

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完成来根据您的提示生成文本。尝试使用不同的提示和参数来获得所需的输出。