openAI API简易使用教程

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

准备

  1. 创建openAI 账号(https://platform.openai.com/overview),右上角personal,创建API key。

openai api,技术杂谈,python,人工智能,开发语言
2. 安装包

pip install openai
pip install --upgrade tiktoken

tiktoken 是用来计算每次查询时的token数,因为openAI是根据token数计费,不是必须安装。

API调用

api key 可以直接明文写在代码中,也可以通过环境变量方式获取

import os
import openai

# OPENAI_API_KEY是自己设定的环境变量名
openai.api_key = os.getenv("OPENAI_API_KEY")
# 明文
openai.api_key = *************

openAI提供了几种不同场景的模型,主要有text completion、code completion、chat completion、image completion,例如chat completion,则调用方式为

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?"}
    ]
)

其中
model 是具体的模型,gpt-3.5-turbo是openAI最先进的语言模型,当然也可以用其他模型。
role,三种固定值,
system:类似一种前提,表示后续的对话以此情景为基础;
user:提问者;
assistant:当对话需要结合上下文时,通过它让模型知道之前的对话内容。

content是具体的对话内容

发起一次请求到响应会存在几秒钟的延迟,response 格式如下所示

{
 'id': 'chatcmpl-6p9XYPYSTTRi0xEviKjjilqrWU2Ve',
 'object': 'chat.completion',
 'created': 1677649420,
 'model': 'gpt-3.5-turbo',
 'usage': {'prompt_tokens': 56, 'completion_tokens': 31, 'total_tokens': 87},
 'choices': [
   {
    'message': {
      'role': 'assistant',
      'content': 'The 2020 World Series was played in Arlington, Texas at the Globe Life Field, which was the new home stadium for the Texas Rangers.'},
    'finish_reason': 'stop',
    'index': 0
   }
  ]
}

提取回复内容response['choices'][0]['message']['content']

每次response中不同finish-reason值代表不同状态:

  • stop:API返回完整内容
  • length:由于max_token限制,回答不完整。
  • content_filter:回复被过滤
  • null:API还在思考答案

计算token数量

openAI的gpt-3.5-turbo-0301模型token最多4096,超过限制只能缩短请求内容。
而且请求的token和回复的token数会被加一起计费,例如说输入了10个token,openAI回复了20个token,那么最终收费是按照30个token进行收费。

import tiktoken
encoding = tiktoken.encoding_for_model("gpt-3.5-turbo")

def num_tokens_from_string(string: str, encoding_name: str) -> int:
    """Returns the number of tokens in a text string."""
    encoding = tiktoken.get_encoding(encoding_name)
    num_tokens = len(encoding.encode(string))
    return num_tokens

num_tokens_from_string("tiktoken is great!", "cl100k_base")

how to count tokens with tiktoken

示例

  1. 中文请求
# 中文
Reponse = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "user", "content": "上海在哪里"},
    ]
)

回复

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "\n\n\u4e0a\u6d77\u4f4d\u4e8e\u4e2d\u56fd\u4e1c\u90e8\u6cbf\u6d77\u5730\u5e26\uff0c\u6bd7\u90bb\u6c5f\u82cf\u548c\u6d59\u6c5f\u4e24\u7701\uff0c\u5904\u4e8e\u957f\u6c5f\u53e3\u548c\u676d\u5dde\u6e7e\u4e4b\u95f4\uff0c\u5730\u7406\u5750\u6807\u4e3a31.23\u00b0N, 121.47\u00b0E\u3002",
        "role": "assistant"
      }
    }
  ],
  "created": 1678794854,
  "id": "chatcmpl-6txWIqBPu6GIbaN7fwnosvKzfkLEE",
  "model": "gpt-3.5-turbo-0301",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 63,
    "prompt_tokens": 13,
    "total_tokens": 76
  }
}
  1. 翻译
reponse = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
  {"role": "system", "content": "You are a helpful assistant that translates English to French."},
  {"role": "user", "content": 'Translate the following English text to French: "{text}"'}
]
)

回复

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "Je suis d\u00e9sol\u00e9, je ne peux pas traduire cette demande car il n'y a pas de texte fourni entre les accolades. Veuillez ajouter du texte \u00e0 traduire.",
        "role": "assistant"
      }
    }
  ],
  "created": 1678798886,
  "id": "chatcmpl-6tyZKMOnfUUeRIszSmgovSKvzsNfA",
  "model": "gpt-3.5-turbo-0301",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 41,
    "prompt_tokens": 34,
    "total_tokens": 75
  }
}

也可以不加system

reponse = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
  {"role": "user", "content": 'Translate the following English text to French: "{text}"'}
]
)

回复:文章来源地址https://www.toymoban.com/news/detail-797453.html

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "\n\n\"{text}\" is already in English and does not need to be translated.",
        "role": "assistant"
      }
    }
  ],
  "created": 1678799017,
  "id": "chatcmpl-6tybRxkYc92IE1mXELPuWnw2OFmgE",
  "model": "gpt-3.5-turbo-0301",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 17,
    "prompt_tokens": 18,
    "total_tokens": 35
  }
}

到了这里,关于openAI API简易使用教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • OpenAI API及ChatGPT系列教程1:快速入门

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

    2024年02月11日
    浏览(37)
  • 使用OkHttp流式请求OpenAI API(GPT API)接口

    因为 GPT 流式请求的出色交互体验,我们打算做一个开源基础应用,方便开发者快速集成项目。 本应用集成 ChatGPT API,使用模型为 gpt-3.5-turbo,项目代码为 Kotlin 语言开发的安卓应用。 人机交互的趋势已经到来,本应用框架也希望能帮助更多开发者快速集成 ChatGPT 体验到人机

    2024年02月11日
    浏览(41)
  • OpenAI使用条款、使用策略和支持的地区汇总:必读指南,避免OpenAI API被封禁

    最近,一些群友反馈他们的OpenAI API被限制,其中包括试用金用户以及绑定了信用卡的用户。当他们调用API时,会收到以下报错信息: Your access was terminated due to violation of our policies, please check your email for more information. If you believe this is in error and would like to appeal, please contact [ [ema

    2024年02月02日
    浏览(51)
  • 使用Streamlit和OpenAI API构建视频摘要

    本文提供了使用Streamlit和OpenAI创建的视频摘要应用程序的概述。该程序为视频的每个片段创建简洁的摘要,并总结视频的完整内容。 要运行应用程序,需要安装以下依赖项: Python(3.7或更高版本) Streamlit OpenAI API密钥 llama_index youtube_transcript_api html2image langchain 首先,需要设置我

    2024年02月13日
    浏览(42)
  • 宝塔反代openai官方API接口详细教程,502 Bad Gateway问题解决

    宝塔反代openai官方API接口详细教程,实现国内使用ChatGPT+502 Bad Gateway问题解决, 此方法最简单快捷,没有复杂步骤,不容易出错,即最简单,零代码、零部署的方法。 一台海外VPS服务器 OpenAI官方的API_KEY 第三方网站系统或插件 关于 第三方网站系统或插件 ,可以看另一篇文章

    2024年02月07日
    浏览(53)
  • 如何通过 Axios 和 JavaScript 使用 OpenAI API

    领先的 AI 研究实验室 OpenAI 创建了一个强大的 API,允许开发人员利用尖端的 AI 功能并使用 GPT3 等生成语言模型。在本教程中,我们将向您展示如何将 OpenAI API 与 Axios 和 JavaScript 结合使用,让您一窥由 AI 驱动的 Web 开发的未来。 Axios 是一个流行的 JavaScript 库,用于发出 HTTP

    2024年02月07日
    浏览(43)
  • openai的API使用Embeddings文本分类的示例

    有许多方法可以对文本进行分类。本笔记本分享了使用Embeddings文本分类的示例。 Embeddings分类方法指的是使用词嵌入技术对文本进行表示,并基于此对文本进行分类。在这种方法中,文本首先被转换为向量表示,然后使用分类器对向量进行分类。通过使用词嵌入技术,文本中

    2024年02月13日
    浏览(81)
  • OpenAI ChatGPT API + FaskAPI SSE Stream 流式周转技术 以及前端Fetch 流式请求获取案例

    这篇文章当时写得比较匆忙,这里进行一下更深入的补充 SSE 技术不是什么新鲜东西,就是一个 HTTP 请求和响应,关键就是响应这个环节,原始的响应都是一次性的,普通的响应是这样的: Nginx 是一个静态服务器,所谓静态服务器,就是将一个静态文件按照大小不同情况选择

    2024年02月08日
    浏览(51)
  • 在 Spring Boot 中使用 OpenAI ChatGPT API

    我们来看看如何在 Spring Boot 中调用 OpenAI ChatGPT API。 我们将创建一个 Spring Boot 应用程序,该应用程序将通过调用 OpenAI ChatGPT API 生成对提示的响应。 在开始具体讲解之前,让我们先探讨一下我们将在本教程中使用的 OpenAI ChatGPT API。我们将调用创建聊天完成 API 来生成对提示的

    2024年02月12日
    浏览(48)
  • 如何在Ubuntu上方便使用OpenAI API key

    上一篇博客中怎么样使用OpenAI的Python API_蛐蛐蛐的博客-CSDN博客,我简单介绍了怎么使用OpenAI API,按照这个网页中的建议:https://platform.openai.com/docs/api-reference/authentication Remember that your API key is a secret! Do not share it with others or expose it in any client-side code (browsers, apps). Production req

    2024年02月02日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包