OpenAI 介绍

发布时间: 更新时间: 总字数:1232 阅读时间:3m 作者: IP上海 分享 网址

OpenAI 介绍

介绍

账号注册

API

常见 API

# 获取支持的模型
curl https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "OpenAI-Organization: YOUR_ORG_ID" \
  -H "OpenAI-Project: $PROJECT_ID"

# chat completions
curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-4.1",
    "messages": [
      {
        "role": "developer",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "Hello!"
      }
    ]
  }'

Completions vs Chat API

OpenAI API 中的 CompletionsChat Completions 是两种不同的接口,用于与语言模型进行交互。它们的主要区别在于设计理念、输入格式和适用场景

Completions API (旧版):

  • 设计理念: 更侧重于文本补全。你给模型一个“提示词”(prompt),模型会根据这个提示词生成后续的文本,像是把一篇文章写完或者回答一个简单的问题。
  • 输入格式: 通常接受一个单一的字符串作为输入(prompt参数)。
  • 适用场景:
    • 短文本生成: 例如,根据前缀生成一个句子、段落。
    • 简单问答: 回答一些不需要多轮对话就能解决的问题。
    • 代码补全: 根据已有的代码片段生成下一行代码。
    • 文本分类/摘要: 通过巧妙的提示词设计,让模型完成这些任务。
  • 缺点: 难以管理多轮对话的上下文。如果你想进行多轮对话,你需要手动将之前的对话历史拼接成一个新的长提示词,这会增加复杂性和 Token 消耗。

Chat Completions API (推荐使用):

  • 设计理念: 专为多轮对话设计,模拟人类交流的方式。它将对话看作一系列消息的交流,每条消息都有一个“角色”(role),如用户(user)、助手(assistant)和系统(system)。
  • 输入格式: 接受一个消息列表作为输入(messages参数)。每个消息对象包含 rolecontent
    • system 角色用于设置助手的行为、语气或提供一些背景信息。
    • user 角色代表用户的输入。
    • assistant 角色代表模型的回复(通常是之前对话中模型的输出)。
  • 适用场景:
    • 构建聊天机器人: 最适合用于开发各种类型的聊天机器人、客服助手等。
    • 上下文感知型应用: 模型能够更好地理解和利用之前的对话历史来生成更连贯、更相关的回复。
    • 角色扮演: 通过 system 消息设定模型的角色。
    • Function Calling(函数调用): 新版本的 Chat Completions API 支持函数调用,让模型能够理解并调用外部工具,从而扩展其能力。
  • 优势:
    • 更好的上下文管理: 模型原生支持多轮对话,更容易维护对话状态。
    • 更强大的模型: 许多先进的模型(如 GPT-3.5-Turbo、GPT-4o 等)都是为 Chat Completions API 设计的。
    • 更低的成本: 相对于旧版 Completions API,相同模型的 Chat Completions API 通常成本更低。

总结对比:

特性 Completions API Chat Completions API
设计核心 文本补全 多轮对话
输入 单一字符串 (prompt) 消息列表 (messages)
上下文 需要手动管理,拼接提示词 内置支持多轮对话上下文管理
模型 较旧的模型(如 text-davinci-003) 较新、更强大的模型(如 gpt-3.5-turbo, gpt-4o)
成本 通常较高(对于同等能力的模型) 通常较低
推荐 适用于简单、单次文本生成任务 推荐用于所有新的应用开发,尤其是需要多轮对话和上下文理解的场景

总之,如果您正在开发一个新的应用,并且希望模型能够进行连贯的多轮对话,或者利用最新的、功能更强大的模型,那么 Chat Completions API 绝对是首选。而 Completions API 更多是用于向后兼容或处理一些非常简单的、一次性的文本生成任务。

工具

tiktoken

import tiktoken
enc = tiktoken.get_encoding("o200k_base")
assert enc.decode(enc.encode("hello world")) == "hello world"

# To get the tokeniser corresponding to a specific model in the OpenAI API:
enc = tiktoken.encoding_for_model("gpt-4o")

第三方代理

本文总阅读量 次 本站总访问量 次 本站总访客数
Home Archives Categories Tags Statistics