位置: 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)

  • 告别传统营销思维,2017年最新营销思维在这儿!

    告别传统营销思维,2017年最新营销思维在这儿!

  • 华为荣耀8x和9x区别(华为荣耀8X和vivoz3i哪个好)

    华为荣耀8x和9x区别(华为荣耀8X和vivoz3i哪个好)

  • mate20pro插耳机没反应(华为mate20pro插耳机没声音)

    mate20pro插耳机没反应(华为mate20pro插耳机没声音)

  • 小米8看视频自动黑屏(小米看视频自动黑屏怎么设置)

    小米8看视频自动黑屏(小米看视频自动黑屏怎么设置)

  • 怎么查手机号绑定的支付宝(怎么查手机号绑定了哪些软件)

    怎么查手机号绑定的支付宝(怎么查手机号绑定了哪些软件)

  • 微信图片已过期或被清理怎么恢复(微信图片已过期或已被清理是什么意思)

    微信图片已过期或被清理怎么恢复(微信图片已过期或已被清理是什么意思)

  • 闲鱼怎么关闭评价记录(闲鱼怎么关闭评论)

    闲鱼怎么关闭评价记录(闲鱼怎么关闭评论)

  • 笔记本8g和16g区别大吗(笔记本8g和16g哪个好)

    笔记本8g和16g区别大吗(笔记本8g和16g哪个好)

  • 祥泰码手机号码不是自己的怎么办(祥泰码怎么弄)

    祥泰码手机号码不是自己的怎么办(祥泰码怎么弄)

  • 骁龙730相当于麒麟多少(骁龙730好吗)

    骁龙730相当于麒麟多少(骁龙730好吗)

  • vivo x27处理器(vivox27处理器是骁龙多少)

    vivo x27处理器(vivox27处理器是骁龙多少)

  • 复印机扫描是什么意思(复印机扫描是干嘛的)

    复印机扫描是什么意思(复印机扫描是干嘛的)

  • 微信踢人怎么踢出去(微信踢人怎么踢出去图片)

    微信踢人怎么踢出去(微信踢人怎么踢出去图片)

  • 相机访问权限怎么打开(相机访问权限怎么设置)

    相机访问权限怎么打开(相机访问权限怎么设置)

  • 两个苹果手机为什么同时来电话(两个苹果手机为什么无法完成数据传输)

    两个苹果手机为什么同时来电话(两个苹果手机为什么无法完成数据传输)

  • 企业微信怎么添加部门(企业微信怎么添加人)

    企业微信怎么添加部门(企业微信怎么添加人)

  • 章鱼输入法怎么斗图 为什么我没有(章鱼输入法怎么换键盘皮肤)

    章鱼输入法怎么斗图 为什么我没有(章鱼输入法怎么换键盘皮肤)

  • 手机qq群名片在哪里设置(手机最新版qq群名片怎么设置)

    手机qq群名片在哪里设置(手机最新版qq群名片怎么设置)

  • 三星note10 重量(三星note10尺寸长宽高重量)

    三星note10 重量(三星note10尺寸长宽高重量)

  • 淘宝上未读是啥情况(淘宝显示未读是真的未读吗)

    淘宝上未读是啥情况(淘宝显示未读是真的未读吗)

  • 微信聊天记录怎么改时间(微信聊天记录怎么恢复)

    微信聊天记录怎么改时间(微信聊天记录怎么恢复)

  • 怎么查看滴滴出行的行程订单(怎么查看滴滴出行路线记录)

    怎么查看滴滴出行的行程订单(怎么查看滴滴出行路线记录)

  • 抖音关闭喜欢的作品(抖音关闭喜欢的作品不可见提示)

    抖音关闭喜欢的作品(抖音关闭喜欢的作品不可见提示)

  • 魅族开机有震动但黑屏(魅族手机开机有震动屏幕不亮)

    魅族开机有震动但黑屏(魅族手机开机有震动屏幕不亮)

  • 费用的进项税额可以抵扣吗
  • 什么是关税自主权
  • 所得税申报是什么
  • 成立一般纳税人公司
  • 付代销手续费会计分录
  • 售后维修收入怎么入账
  • 收到借款利息如何计算
  • 出纳个人账户转公户
  • 贷款利息不能抵扣进项税
  • 2021年增值税专用发票红冲发票步骤
  • 银行汇票退回
  • 当月商品已出库货款未收到怎么做分录?
  • 材料成本会计的主要内容
  • 采购商品未收到分录
  • 资产负债表和利润表和现金流量表的关系
  • 企业所得税报表模板
  • 超豪华小汽车消费税起征点
  • 解析居民企业非货币性资产对外投资政策
  • 广告费扣税
  • 季度不超过30万免税分录
  • win11压缩文件
  • 苹果系统更新在哪里找
  • 怎样升级智慧中小学版本软件
  • 暂估成本跨月账务处理
  • 货物损坏补发会计分录
  • 如何防御黑客入侵
  • 如何限制某台设备上网
  • win11粘滞键怎么关闭 重启后又有
  • 苹果11怎么充不上电了
  • ESP32-CAM AI THINKER 引脚排列:GPIO 用法说明
  • php chr
  • PHP:imagecreatetruecolor()的用法_GD库图像处理函数
  • php延迟静态绑定
  • 稽查补缴所得税分录
  • 建筑业异地预缴增值税
  • 雪花算法时钟回拨
  • 软件开发属于技术合同吗
  • 购入的机器设备
  • 所得税汇算清缴需要调增的项目
  • sqlserver2012安装好了桌面没有图标
  • 买一赠一税务局答复
  • 中药和中药饮片有区别吗
  • 利润表中其他业务利润怎么算
  • 无形资产比如
  • 结转收入及成本费用
  • 单位食堂账目
  • 样品费计入
  • 进项税额转出在电子税务局怎么操作
  • etc的充值发票可以报账吗
  • 工程施工合同如何核算收入成本?
  • 怎么查企业适用的会计准则
  • 未实际收到的投资收益
  • 固定资产盘亏计入固定资产清理吗
  • 浅谈基于comsol的锂离子电池仿真
  • windows如何显示键盘
  • mac可以上qq但是打不开网页
  • 深入理解linux内核架构
  • Ubuntu Server Rsync服务端与Windows cwRsync客户端实现数据同步配置教程
  • linux关闭进程kill
  • Win10预览版怎么变回正式版
  • 扫描仪在哪儿
  • 自动化测试读写题答案
  • 安卓图片缓存太占空间
  • android下拉刷新上拉加载
  • 大家看的是什么
  • 脚本控制三行三列怎么写
  • DOS命令删除文件夹
  • Linux CentOS系统下安装node.js与express的方法
  • web应用程序开源框架
  • 八大排序算法的时间空间复杂度
  • CameraViewControl 摄像机 绕 物体
  • js 严格的迭代语句
  • python djang
  • 杭州电子税务局注册流程
  • 如何查询车辆购买信息
  • 建筑施工企业一级资质企业,安全生产管理
  • 房产税的解读
  • 四川电子税务局网上办税大厅
  • 普通版怎么下载
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设