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

  • wps无法复制粘贴的解决方法(电脑复制粘贴怎么操作)

    wps无法复制粘贴的解决方法(电脑复制粘贴怎么操作)

  • 启用wapi是什么意思(启用wapi是什么功能)

    启用wapi是什么意思(启用wapi是什么功能)

  • 快手仅好友可以评论视频的设置方法是什么(快手仅好友可以评论可以发私信吗)

    快手仅好友可以评论视频的设置方法是什么(快手仅好友可以评论可以发私信吗)

  • 苹果xr有屏下指纹解锁吗(苹果xr底部屏幕失灵)

    苹果xr有屏下指纹解锁吗(苹果xr底部屏幕失灵)

  • 6s要不要升级13

    6s要不要升级13

  • 50定焦拍全身要多远(50定焦镜头拍视频)

    50定焦拍全身要多远(50定焦镜头拍视频)

  • 电脑充手机会有什么危害吗(用电脑充电手机会中毒吗)

    电脑充手机会有什么危害吗(用电脑充电手机会中毒吗)

  • 荣耀30s有没有门禁卡功能(荣耀30s有没有门禁功能)

    荣耀30s有没有门禁卡功能(荣耀30s有没有门禁功能)

  • 抖音剩余粉丝未授权无法查看(抖音剩余粉丝未授权怎么移除)

    抖音剩余粉丝未授权无法查看(抖音剩余粉丝未授权怎么移除)

  • 华为可以插内存卡吗(华为可以插内存卡的平板)

    华为可以插内存卡吗(华为可以插内存卡的平板)

  • 微信朋友圈屏蔽了某人还能看到吗(微信朋友圈屏蔽某人后对方知道吗)

    微信朋友圈屏蔽了某人还能看到吗(微信朋友圈屏蔽某人后对方知道吗)

  • 苹果7p微信怎么加密码锁(苹果7p微信怎么设置指纹支付)

    苹果7p微信怎么加密码锁(苹果7p微信怎么设置指纹支付)

  • 鼠标接收器坏了能配一个吗(鼠标接收器坏了还能用吗)

    鼠标接收器坏了能配一个吗(鼠标接收器坏了还能用吗)

  • pe启动盘是什么(pe的启动盘)

    pe启动盘是什么(pe的启动盘)

  • mate10扩展内存方法(华为mate10内存扩充)

    mate10扩展内存方法(华为mate10内存扩充)

  • 红包抵扣的,退款以后红包会回来吗(用红包抵扣退款是退全款吗?)

    红包抵扣的,退款以后红包会回来吗(用红包抵扣退款是退全款吗?)

  • 怎样解除免密支付微信(怎样解除免密支付功能抖音)

    怎样解除免密支付微信(怎样解除免密支付功能抖音)

  • 抖音认证是什么(抖音认证怎么认证?)

    抖音认证是什么(抖音认证怎么认证?)

  • 小米9se支不支持OTG(小米9se支不支持插内存卡)

    小米9se支不支持OTG(小米9se支不支持插内存卡)

  • 电脑白屏按哪三个键(电脑白屏按哪三个键电脑怎么重启)

    电脑白屏按哪三个键(电脑白屏按哪三个键电脑怎么重启)

  • 苹果手机设置里面怎么变黑了(苹果手机设置里的小红点怎么去掉)

    苹果手机设置里面怎么变黑了(苹果手机设置里的小红点怎么去掉)

  • 华为gt2可单独打电话吗(华为gt2可以独立打电话吗)

    华为gt2可单独打电话吗(华为gt2可以独立打电话吗)

  • 微信辅助解封一年几次(微信辅助解封一个月能解几次)

    微信辅助解封一年几次(微信辅助解封一个月能解几次)

  • 苹果11需要买镜头膜吗(iphone11要买镜头膜吗)

    苹果11需要买镜头膜吗(iphone11要买镜头膜吗)

  • oppo手机如何连接蓝牙(oppo手机如何连接华为蓝牙耳机)

    oppo手机如何连接蓝牙(oppo手机如何连接华为蓝牙耳机)

  • vsco会员怎么退订(vsco会员申请退款可以吗)

    vsco会员怎么退订(vsco会员申请退款可以吗)

  • iwatch待机多久(苹果手表半天就没电了)

    iwatch待机多久(苹果手表半天就没电了)

  • 为什么苹果前置摄像头照片是反的(为什么苹果前置拍照脸是歪的)

    为什么苹果前置摄像头照片是反的(为什么苹果前置拍照脸是歪的)

  • WordPress禁用Jquery Migrate方法(wordpress jquery)

    WordPress禁用Jquery Migrate方法(wordpress jquery)

  • 差旅费处理会计分录
  • 个人销售商品交什么税
  • 社保年检申报错误怎么办
  • 融资租赁担保余值
  • 会计账本需要装订的有哪些
  • 一税两费可以从费用中扣除吗
  • 为什么征收增值税体现了量益原则
  • 城镇土地使用税减免税政策
  • 年初建账考虑要点有哪些
  • 企业所得税中的所得
  • 自然人城建税减半征收
  • 增值税发票在邮寄途中丢了怎么办
  • 工会经费和职工教育经费比例
  • 委托外单位加工发出的材料分录
  • 出口产品报关单上保险费与实际不符可以丿退税吗
  • 应交税费计提是借方还是贷方
  • 施工费增值税税率是9%
  • 增值税如何进行抵扣
  • 总分公司、母子公司:三流不一致情况下,如何抵扣增值税?
  • 发票没有存根联怎么办
  • 企业计算缴纳所得税标准
  • 核销以前年度的其他应付款
  • 外购固定资产对账怎么算
  • win没有投影到此电脑怎么办
  • 微软发布windows
  • php escapeshellarg
  • 可转换债券的特点有哪些?
  • 为实习生支付人身意外伤害保险如何进行账务处理?
  • YII2.0之Activeform表单组件用法实例
  • 企业所得税税前扣除凭证(发票)风险提示反馈
  • 跨年度退货
  • k8s控制器模式
  • lvs命令
  • 领用发票后
  • 简单易学的前端框架
  • 怎样网上抄税
  • 可转换优先股会稀释股权吗
  • 残保金计税基数是什么
  • 小型微利企业如何进行税收筹划
  • mysql 服务器配置
  • MySQL中使用什么语句来更新表中的记录
  • mongodb的redo日志为
  • 认缴制和实缴制的区别公司破产
  • 生产成本设置二级科目
  • 一般纳税企业增值税的核算应当使用
  • 无资产可执行啥意思
  • 材料帐怎么记
  • 无法收回的应收账款可以税前扣除吗
  • 利润分配科目是所有者权益科目吗
  • 固定资产支付的保险费计入成本吗
  • 计入资本公积的固定资产处置
  • 本期预付的费用属于本期费用吗
  • 售楼部大楼
  • 社会团体收到的会费怎么入账
  • 未按期预缴企业社保
  • 企业职工薪酬如何确定
  • 体检费用开发票给公司怎么开
  • 认证测试方式有哪几种
  • 企业开办费计入什么科目
  • having的用法详解
  • 新买的电脑如何验机
  • w10预览版新功能
  • windows 2003 r2
  • ubuntu系统怎么修改root密码
  • centos screen命令
  • win8系统如何连接wifi
  • excel的窗口包含什么
  • django实现登录注册功能
  • perl编程
  • javascript常用语句
  • Nodejs+Socket.io实现通讯实例代码
  • android.intent.extra.text
  • 超级给力的好人有哪些
  • 安卓系统引导程序
  • python内置函数format
  • JavaScript基础教程
  • 简单的智能家居
  • 欠税务局税款的后果
  • 查国税发票验证码怎么查
  • 开电影院有哪些要求
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设