位置: IT常识 - 正文

Python Module — OpenAI ChatGPT API

编辑:rootadmin
原力计划Python Module — OpenAI ChatGPT API 目录文章目录目录OpenAI Python SDKopenai.ChatCompletion 模块openai.ChatCompletion.create 函数OpenAPI client 代码示例OpenAI Python SDK官方文档:https://platform.openai.com/docs/api-reference/introduction

推荐整理分享Python Module — OpenAI ChatGPT API,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

Python Module — OpenAI ChatGPT API

OpenAI Python SDK 用于开发与 OpenAI RESTful API 进行交互的客户端应用程序,包含了 OpenAI 的各种人工智能模型的 API。

OpenAI Python SDK 提供了多个模块,每个模块都具有一套自包含的 APIs,包括:

openai.ChatCompletion:用于访问 ChatGPT 语言模型,实现自然语言生成和处理。openai.Davinci:用于访问 OpenAI 最大的 GPT-3 语言模型,提供了更强大的语言处理能力。openai.GPT:用于访问 OpenAI 较小的 GPT-3 语言模型,提供了基本的语言处理能力。openai.Language:用于访问 OpenAI 语言模型,提供了自然语言生成和处理的能力。openai.Image:用于访问 DALL-E 图像生成模型,实现图像的生成和处理。openai.File:用于访问 OpenAI 文件服务器,实现文件的上传和下载。openai.Organization:用于管理 OpenAI 账户、工作区和 API Keys 等。openai.ChatCompletion 模块

OpenAI ChatCompletion 模块用于访问 ChatGPT 语言模型,用于实现对话式(Chat)AI 应用程序。

openai.ChatCompletion.create 函数编程示例:https://github.com/JmilkFan/easy-chat-prompts

函数作用:与 ChatGPT 进行 C/S 交互,返回 AI 模型生成的对话文本。注意,该接口是 Stateless 的,每次调用都不包含对话的上下文。这意味着需要客户端应用程序自己维护 “聊天记录“。

函数原型:

model:指示要访问的 AI 模型,例如:gpt-3.5-turbo(计费 $0.002 / 1K tokens)。messages:对话消息,字典列表类型,字典包括下列 Keys。

role:指示发起对话的角色。枚举:user(发送用户对话)、system(发送给 AI 模型的提示符)。content:指示发起对话的内容。assistant:指示 ChatGPT 回答的内容,用于传递 “聊天记录”。max_tokens:指示响应内容的 Token 数量,例如:1024、2048、4096(MAX)。temperature:用于控制输出文本的多样性和创造性。它是一个介于 0 到 1 之间的实数,表示 AI 模型在生成每个单词时的随机程度。更高的数值会导致更多的随机性和更多的创造性,但可能会降低输出的质量和连贯性。反之,则会产生较为确定性的输出,但可能会使输出变得单调和缺乏创意。top_p:用于控制模型生成的单词的概率分布。它是一个介于 0 到 1 之间的实数,表示模型在生成下一个单词时,只考虑最有可能的前 top_p 个单词。当 top_p 较小时,生成的文本更加精细和准确,但可能会导致过度确定性和缺乏多样性。反之,当 top_p 较大时,生成的文本更加多样化,但可能会导致出现不合适的单词和不相关的文本。frequency_penalty:用于控制生成对话文本中重复的程度,值越大则重复的文本越少,值越小则重复的文本越多。如果将其设置为 0,则 AI 模型将生成最多数量的重复文本。presence_penalty:用于控制模型生成是否包含与给定文本重叠的片段,值越大则生成文本的准确性越高,值越小则生成文本的多样性越大。stop:用于控制对话文本生成的终止条件。n:指示生成对话文本的个数。max_examples:用于控制生成对话文本的数量。logprobs:在对话文本生成时输出单词出现的概率。echo:是否在生成对话文本后输出到控制台。def create( model: str, messages: str, max_tokens: Optional[int] = None, temperature: Union[int, float] = 0.5, top_p: Union[int, float] = 1.0, frequency_penalty: Union[int, float] = 0, presence_penalty: Union[int, float] = 0, stop: Optional[Union[str, List[str]]] = None, n: Optional[int] = 1, max_examples: Optional[int] = None, logprobs: Optional[int] = None, echo: bool = True, **kwargs,) -> Dict[str, Union[str, List[str]]]: pass原始 HTTP 请求样式:curl https://api.openai.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Say this is a test!"}], "temperature": 0.7 }'原始 HTTP 响应样式:{ "id":"chatcmpl-abc123", "object":"chat.completion", "created":1677858242, "model":"gpt-3.5-turbo-0301", "usage":{ "prompt_tokens":13, "completion_tokens":7, "total_tokens":20 }, "choices":[ { "message":{ "role":"assistant", "content":"\n\nThis is a test!" }, "finish_reason":"stop", "index":0 } ]}“聊天记录“ 请求样式: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?"}]OpenAPI client 代码示例import openaiimport configparserimport timeconfig = configparser.ConfigParser()config.read('./config.ini')class OpenAIClient(object): def __init__(self): super(OpenAIClient, self).__init__() openai.api_key = config.get('OpenAI', 'API_SECRET_KEY') self.max_retry = 3 self.retry_delay = 5 self.timeout = 10 def _make_request(self, role, content): print("*************************************") print("request role: ", role) print("request content: ", content) print("*************************************") if role not in ['user', 'system', 'assistant']: print(f'role [{role}] not found.') raise retry_count = 0 while retry_count < self.max_retry: try: response = openai.ChatCompletion.create( model=config.get('OpenAI', 'MODEL'), messages=[{"role": role, "content": content}], max_tokens=2048, n=1, stop=None, temperature=0.7, timeout=self.timeout ) return response except Exception as e: print(f"Failed to connect to API server, detail error as {e}, retrying in {self.retry_delay} seconds ({retry_count+1}/{self.max_retry})") time.sleep(self.retry_delay) retry_count += 1 def chat_request(self, content): role = "user" return self._make_request(role, content) def prompt_request(self, content): role = "system" return self._make_request(role, content) def parser_response(self, response): result = [] choices = response.choices for cho in choices: result.append( { 'index': cho['index'], 'role': cho['message']['role'], 'content': cho['message']['content'] } ) return resultif __name__ == '__main__': cli = OpenAIClient() resp = cli.chat_request(content='hello!') print("Test response: ", cli.parser_response(resp))./config.ini[OpenAI]API_SECRET_KEY = your_api_keyMODEL = gpt-3.5-turbo
本文链接地址:https://www.jiuchutong.com/zhishi/299606.html 转载请保留说明!

上一篇:微信小程序:用户微信登录流程(附:流程图+源码)(微信小程序用电脑怎么打开)

下一篇:Opencv(C++)系列学习---opencv_contrib安装(opencv1.0)

  • 抖音里的订单怎么找(抖音里的订单怎么删除)

    抖音里的订单怎么找(抖音里的订单怎么删除)

  • mx230显卡什么水平(mx230显卡好不好)

    mx230显卡什么水平(mx230显卡好不好)

  • u盘驱动器存在问题 请立即修复怎么办(u盘驱动器存在问题怎么修复)

    u盘驱动器存在问题 请立即修复怎么办(u盘驱动器存在问题怎么修复)

  • win10电脑连不上iphone热点(win10电脑连不上网)

    win10电脑连不上iphone热点(win10电脑连不上网)

  • 探探看别人主页会有显示吗(探探谁看了我)

    探探看别人主页会有显示吗(探探谁看了我)

  • 手机屏幕出现键盘虚影(手机屏幕出现键盘)

    手机屏幕出现键盘虚影(手机屏幕出现键盘)

  • 华为免打扰对方提示是什么(华为开启免打扰模式后别人打得进来吗)

    华为免打扰对方提示是什么(华为开启免打扰模式后别人打得进来吗)

  • cpu由运算器和什么组成(cpu由运算器和什么两部分组成)

    cpu由运算器和什么组成(cpu由运算器和什么两部分组成)

  • oppor17长宽高多少cm(oppor17的长度)

    oppor17长宽高多少cm(oppor17的长度)

  • 照片怎么缩小到4M(照片怎么缩小到200k)

    照片怎么缩小到4M(照片怎么缩小到200k)

  • 信号满格网速慢(4g信号满格网速很慢怎么办)

    信号满格网速慢(4g信号满格网速很慢怎么办)

  • 手机摔过后有什么影响(手机摔了后会影响性能吗)

    手机摔过后有什么影响(手机摔了后会影响性能吗)

  • 朋友圈显示加载更多是什么意思(朋友圈显示加载更多然后就是一条横线)

    朋友圈显示加载更多是什么意思(朋友圈显示加载更多然后就是一条横线)

  • 网络协议与服务的区别(网络协议服务器有哪些)

    网络协议与服务的区别(网络协议服务器有哪些)

  • oppo手机find x什么时候上市的(oppo-find-x)

    oppo手机find x什么时候上市的(oppo-find-x)

  • qq闪照怎么设置3秒(QQ闪照怎么设置时间)

    qq闪照怎么设置3秒(QQ闪照怎么设置时间)

  • 手机卡跨省可以注销吗(手机卡跨省可以过户吗)

    手机卡跨省可以注销吗(手机卡跨省可以过户吗)

  • 互联网+是什么(互联网是什么时候诞生的)

    互联网+是什么(互联网是什么时候诞生的)

  • 怎样复制粘贴快手昵称(怎样复制粘贴快捷指令)

    怎样复制粘贴快手昵称(怎样复制粘贴快捷指令)

  • 抖音没有播放量怎么办(抖音没有播放量怎么养号)

    抖音没有播放量怎么办(抖音没有播放量怎么养号)

  • 淘宝怎么变回健康宝宝(淘宝怎么变回健康模式)

    淘宝怎么变回健康宝宝(淘宝怎么变回健康模式)

  • 微信号不存在是怎么回事(怎么可以有两个微信号)

    微信号不存在是怎么回事(怎么可以有两个微信号)

  • 萤石移动侦测哪里关闭(萤石移动侦测误报很高)

    萤石移动侦测哪里关闭(萤石移动侦测误报很高)

  • Win11中的照片应用程序有哪些新功能?获得新的照片应用程序方法(win11自带照片查看器)

    Win11中的照片应用程序有哪些新功能?获得新的照片应用程序方法(win11自带照片查看器)

  • vite.config.js详细配置。(viwer.js)

    vite.config.js详细配置。(viwer.js)

  • 计提住房公积金怎么算
  • 工程招标费计入什么科目
  • 车辆商业险和强制险交完给退么
  • 资产减值准备对股票的影响
  • 税务登记投资方经济性质
  • 买一赠一销售收入计算案例
  • 交易性金融资产的交易费用计入哪里
  • 个体户没有税务登记证能注销营业执照吗
  • 劳务报酬所得是什么
  • 本月无销项只有进项申报表如何填写
  • 股东入资印花税怎么计算
  • 员工激励该怎么表达
  • 以货抵债会计处理
  • 提供服务的发票可以抵扣税款吗?
  • 金银首饰的消费税税务处理
  • 研发费用领用材料
  • 个人装修可以开发票吗?
  • 小规模纳税人销售自己使用过的物品
  • 打开网页出现电脑标志
  • 销售免费样品账务处理
  • 纳税调整需要调年度报表嘛
  • 公司试乘试驾车管理
  • Win10 Build 19043.1147 (21H1)预览通道更新补丁KB5004296(附完整更新日志)
  • 收到租赁发票会计分录怎么做
  • 税务申报逾期罚款不交
  • php的用处
  • 高新技术企业加计5%
  • php 上传
  • 高薪员工辞退补偿金
  • 摊销专利权会计分录怎么写
  • php网站实例
  • 伫立枝头的旅鸫鸟,加拿大 (© marcophotos/Getty Images)
  • php处理xml
  • 水青冈是常绿还是落叶
  • yii2前后端分离
  • 上月未开发票的销项税,已经申报缴税,在本月开了票,应该如何填报?
  • 机票报销需要哪些才可以
  • css背景图
  • yolov5 教程
  • 固定资产发票税率多少
  • 固定资产被替换的账面价值怎么算
  • 政府购买服务交几险
  • 无形资产商标权摊销
  • 工程类什么情况下可以三方询价
  • mysql一对多关系如何一次性查出来
  • c语言realloc函数的用法
  • 帝国cms8.0
  • sql2014附加数据库失败
  • 商品售后回购分录
  • 金税四期的特点
  • 现金流量表中支付的税费怎么填
  • sqlserver阻止保存要求重新
  • 增值税进项税销项税月末需要结转吗
  • 暂估入库的库存商品转成本吗
  • 职工罚款的会计处理办法
  • 确认收入后销售怎么算
  • 增值税负数发票怎么做账
  • 免税蔬菜交企业所得税吗
  • 水果店的账务处理
  • 销售费用变动率是看本期还是本年累计
  • 采购未取得发票怎么结转成本
  • 一般纳税人加工费怎么做账
  • 工业企业预提费用怎么算
  • mysql必知必会mobi
  • mysql jsonb
  • mysql缓冲区
  • winXP系统修复
  • win10系统打开word出现水渍
  • 如何去掉windows7开机密码
  • win8如何使用word
  • 电脑双系统删除一个系统的步骤
  • javascript对象的属性和方法
  • python socket编程教程
  • 简要说明javascript的作用
  • vb中chr$(13)是什么意思
  • unity shader lod
  • unity3d导出fbx文件
  • javascript总结笔记
  • 常州税务局举报网站
  • 豫麦336
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设