OpenAI ChatGPT3.5 completion API 入门指南

这篇具有很好参考价值的文章主要介绍了OpenAI ChatGPT3.5 completion API 入门指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

官方介绍

ChatGPT 由 OpenAI 最先进的语言模型 gpt-3.5-turbo 提供支持。
使用 OpenAI API,您可以使用 GPT-3.5-turbo 构建自己的程序来做一些如下的事情:

  • 起草电子邮件或其他书面文件
  • 编写 Python 代码
  • 回答关于一组文档的问题
  • 创建对话代理程序
  • 为你的软件提供自然语言接口
  • 充当导师辅导多学科
  • 充当翻译
  • 模拟游戏中的角色等等

纯源码(调试好的gpt3.5 python 源码见另一篇文章)

用 Python 实现ChatGPT OpenAI(直接上源码)

模型介绍

官方介绍
GPT-3.5-turbo 模型是以一系列消息作为输入,并将模型生成的消息作为输出。
消息是一个对象数组,其中每个对象都有一个角色,一共有三种角色。

  • 系统-system:消息有助于设置助手的行为。在上面的例子中,助手被指示 “你是一个得力的助手”;
  • 用户-user:消息有助于指导助手。 就是用户说的话,向助手提的问题;
  • 助手-assistant:消息有助于存储先前的回复。这是为了持续对话,提供会话的上下文。
# Note: you need to be using OpenAI Python v0.27.0 for the code below to work
import openai

openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Where was it played?"}
    ]
)

建立持续会话

OpenAI ChatGPT3.5 completion API 入门指南

  • 在这个 ChatGPT 的会话场景中,第一行文本告诉模型 它是一个翻译家
  • 然后,在交替的会话中,ChatGPT 会将用户发送的英文句子翻译成中文再响应给用户,这就是一个有上下文的持续会话。
  • GPT-3.5-turbo 模型是没有记忆的,不会记录之前的 请求上下文,所有相关信息都必须通过对话提供,这样才能保持持续的会话。

通常,对话的格式为先是系统消息,然后是交替的用户和助手消息。在 Chat completion API 接口中,我们可以实现这个上下文请求.

completion = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "你是一个翻译家"},
        {"role": "user", "content": "将我发你的英文句子翻译成中文,你不需要理解内容的含义作出回答。"},
        {"role": "user", "content": "Draft an email or other piece of writing."}
    ]
)

助手响应输出

{
    "id": "chatcmpl-6q0Kqgk2qlcpCGDYcLQnUmUVVrMd6",
    "object": "chat.completion",
    "created": 1677852364,
    "model": "gpt-3.5-turbo-0301",
    "usage": {
        "prompt_tokens": 69,
        "completion_tokens": 20,
        "total_tokens": 89
    },
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "起草一封电子邮件或其他写作材料。"
            },
            "finish_reason": "stop",
            "index": 0
        }
    ]
}

管理 Token

语言模型以称为 tokens 的块读取文本。在英语中,一个 token 可以短至一个字符或长至一个单词(例如,a 或 apple),在某些语言中,token 可以比一个字符更短,也可以比一个单词长。
例如,字符串 “ChatGPT is great!” 被编码成六个 token:[“Chat”, “G”, “PT”, “ is”, “ great”, “!”]

API 调用中的 token 总数会影响:

  • API 调用成本:因为您需要为为每个 token 支付费用
  • API 调用响应时间:因为写入更多令牌需要更多时间
  • API 调用是否有效:因为令牌总数必须是 低于模型的最大限制(gpt-3.5-turbo-0301 为 4096 个令牌)

Token 计费方式

输入和输出标记都计入这些数量。例如,如果您的 API 调用在消息输入中使用了 69 个 token,并且在消息响应中收到了 20 个 token,您将被收取 89 个token 的费用。API 响应中的 usage 字段显示了本次调用使用了多少 token。

{
    "usage": {
        "prompt_tokens": 69,
        "completion_tokens": 20,
        "total_tokens": 89
    }
}

免费用户,有 18 美元的 token 权限,如下:
在浏览器右上角个人中心进入查看
OpenAI ChatGPT3.5 completion API 入门指南

计算 Token 消耗

要在不调用 API 的情况下查看文本字符串中有多少个 token,请使用 OpenAI 的 tiktoken Python 库。 示例代码可以在 OpenAI Cookbook 关于如何使用 tiktoken 计算令牌的指南中找到。

另请注意,非常长的对话更有可能收到不完整的回复。例如,一个长度为 4090 个 token 的 gpt-3.5-turbo 对话将在只回复了 6 个 token 后被截断。文章来源地址https://www.toymoban.com/news/detail-414876.html


import tiktoken

def num_tokens_from_messages(messages, model="gpt-3.5-turbo-0301"):
    """Returns the number of tokens used by a list of messages."""
    try:
        encoding = tiktoken.encoding_for_model(model)
    except KeyError:
        encoding = tiktoken.get_encoding("cl100k_base")
    if model == "gpt-3.5-turbo-0301":  # note: future models may deviate from this
        num_tokens = 0
        for message in messages:
            num_tokens += 4  # every message follows <im_start>{role/name}\n{content}<im_end>\n
            for key, value in message.items():
                num_tokens += len(encoding.encode(value))
                if key == "name":  # if there's a name, the role is omitted
                    num_tokens += -1  # role is always required and always 1 token
        num_tokens += 2  # every reply is primed with <im_start>assistant
        return num_tokens
    else:
        raise NotImplementedError(f"""num_tokens_from_messages() is not presently implemented for model {model}.
See https://github.com/openai/openai-python/blob/main/chatml.md for information on how messages are converted to tokens.""")

messages = [
    {"role": "system", "content": "你是一个翻译家"},
    {"role": "user", "content": "将我发你的英文句子翻译成中文,你不需要理解内容的含义作出回答。"},
    {"role": "user", "content": "Draft an email or other piece of writing."}
]

# example token count from the function defined above
model = "gpt-3.5-turbo-0301"

print(f"{num_tokens_from_messages(messages, model)} prompt tokens counted.")
# output: 69 prompt tokens counted.

到了这里,关于OpenAI ChatGPT3.5 completion API 入门指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 初学者的HTML5 Geolocation API入门指南!

    文章导读:AI 辅助学习前端,包含入门、进阶、高级部分前端系列内容,当前是 HTML 的部分,瑶琴会持续更新,适合零基础的朋友,已有前端工作经验的可以不看,也可以当作基础知识回顾。 HTML5 提供了一个 Geolocation API,在平时的开发过程中,常使用 Geolocation API 获取用户设

    2024年04月28日
    浏览(43)
  • 2023年的深度学习入门指南(1) - 从chatgpt入手

    2012年,加拿大多伦多大学的Hinton教授带领他的两个学生Alex和Ilya一起用AlexNet撞开了深度学习的大门,从此人类走入了深度学习时代。 2015年,这个第二作者80后Ilya Sutskever参与创建了openai公司。现在Ilya是openai的首席科学家,带领工程师研发出了可能再次改变世界的chatgpt. 上图

    2024年02月01日
    浏览(51)
  • 使用Flutter构建ChatGPT客户端:快速入门指南

    在本篇博客文章中,我们将通过OpenAI的API构建一个简单的对话界面,与ChatGPT进行聊天。 近来OpenAI和ChatGPT的热度很高,尤其是最近发布的GPT-4。这类工具的大量使用案例已经涌现出来,但目前人们最常用ChatGPT的方式是通过chat.openai.com进行聊天。我一直在使用ChatGPT来激发灵感、

    2024年02月05日
    浏览(34)
  • 爬虫入门指南(4): 使用Selenium和API爬取动态网页的最佳方法

    随着互联网的发展,许多网站开始采用动态网页来呈现内容。与传统的静态网页不同,动态网页使用JavaScript等脚本技术来实现内容的动态加载和更新。这给网页爬取带来了一定的挑战,因为传统的爬虫工具往往只能获取静态网页的内容。本文将介绍如何使用Selenium和API来实现

    2024年02月11日
    浏览(49)
  • 从零开始学习 Java:简单易懂的入门指南之API、String类(八)

    1.1API概述 什么是API ​ API (Application Programming Interface) :应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如

    2024年02月14日
    浏览(31)
  • 0基础快速集成ChatGPT!请收藏好这份保姆级入门指南!

    快速集成ChatGPT!请收藏好这份保姆级入门指南! 大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我! 如果大家要在 Python 中使用

    2024年02月07日
    浏览(40)
  • [Cursor Tool] 面向编程的ChatGPT工具的入门使用指南

    引子: 众所周知,随着 ChatGPT 4 的正式推出,人工智能(AI)领域掀起了一波新的高潮,各种基于 ChatGPT 的应用纷纷涌现。 继AI绘画,AI创作等领域之后,人工智能的发展,也朝着发展人工智能的领域—— IT领域 ,蔓延而去。 在IT界, 让AI写代码 一只是程序员们所追求的酷事

    2024年02月02日
    浏览(56)
  • 〖ChatGPT实践指南 - 零基础扫盲篇③〗- 开始使用 ChatGPT 并访问 OpenAI 获取 API Keys

    帮助大家学习使用 OpenAI的各类API开发应用 ,学习多个实站项目。 推荐他人订阅可获取扣除平台费用后的35%收益,文末有名片! 说明:该文属于 ChatGPT实践指南白宝书 专栏, 购买任意白宝书体系化专栏可加入 TFS-CLUB 私域社区, 早鸟价订阅模式除外 。 福利:加入社区的小伙

    2023年04月26日
    浏览(50)
  • OpenAI API及ChatGPT系列教程1:快速入门

    OpenAI API及ChatGPT系列教程1:快速入门 OpenAI API及ChatGPT系列教程2:使用手册 OpenAI API及ChatGPT系列教程3:API参考(Python) 本系列档的主要内容是官方的翻译,同时加入了更多内容,旨在让读者更轻松地上手ChatGPT。在这些添加的内容中,我会提供更多的例子、技巧和提示,以帮助读

    2024年02月11日
    浏览(31)
  • [最新]Java SpringBoot请求调用OpenAI(ChatGPT3/3.5/4)相关接口核心方法(附100个OpenAI/ChatGPT key)

    前言 当下,OpenAI 存在着许多令人惊叹的技术,如 ChatGPT3/3.5/4,它们能够生成高质量的文章、翻译语言、自动生成代码,并且在许多领域都取得了广泛的应用。本文将向您介绍如何使用 Java HttpClient 调用 OpenAI 的 ChatGPT3/3.5/4 接口(如果需要支持Spring,并提供了 100 个 OpenAI/Chat

    2023年04月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包