编程助手学Python--Deepseek对OpenAI的Python库调用GPT-4模型生成对话回复理解

编程助手学Python--Deepseek对OpenAI的Python库调用GPT-4模型生成对话回复理解

      • 1. 导入库
      • 2. 设置环境变量
      • 3. 打印环境变量
      • 4. 配置 OpenAI API
      • 5. 打印 API 配置
      • 6. 定义对话消息
      • 7. 调用 OpenAI API
      • 8. 打印 API 响应
      • 9. 提取并打印生成的回复
      • 10. 代码总结
      • 11. 注意事项
      • 12. 完整代码示例
      • 13. 输出示例

import openai
import osos.environ["OPENAI_API_KEY"] = "sk-xxx"
os.environ["OPENAI_API_BASE"] = "https://ai.com/v1"
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.api_base = os.getenv("OPENAI_API_BASE")
print(openai.api_key)
print(openai.api_base)
message = [{"role": "system", "content": "How are you today?"}]
res = openai.ChatCompletion.create(model="gpt-4-1106-preview", messages=message, stream=False,)
print(res)
print(res.choices[0].message["content"]) 详细解释
  • 这段代码使用 OpenAI 的 Python 库调用 GPT-4 模型生成对话回复。以下是详细解释:


    1. 导入库

    import openai
    import os
    
    • openai:OpenAI 官方库,用于调用 OpenAI API。
    • os:用于访问和操作环境变量。

    2. 设置环境变量

    os.environ["OPENAI_API_KEY"] = "sk-xxx"
    os.environ["OPENAI_API_BASE"] = "https://ai.com/v1"
    
    • os.environ:用于设置环境变量。
      • OPENAI_API_KEY:OpenAI API 的密钥,用于身份验证。
      • OPENAI_API_BASE:OpenAI API 的基础 URL,可以自定义为代理地址。

    3. 打印环境变量

    print(os.environ)
    
    • 打印当前进程的所有环境变量,确认 OPENAI_API_KEYOPENAI_API_BASE 已正确设置。

    4. 配置 OpenAI API

    openai.api_key = os.getenv("OPENAI_API_KEY")
    openai.api_base = os.getenv("OPENAI_API_BASE")
    
    • os.getenv:从环境变量中获取值。
      • openai.api_key:设置 OpenAI API 的密钥。
      • openai.api_base:设置 OpenAI API 的基础 URL。

    5. 打印 API 配置

    print(openai.api_key)
    print(openai.api_base)
    
    • 打印 openai.api_keyopenai.api_base,确认配置正确。

    6. 定义对话消息

    message = [{"role": "system", "content": "How are you today?"}]
    
    • message:一个包含对话消息的列表,每个消息是一个字典。
      • role:消息的角色,system 表示系统消息。
      • content:消息内容。

    7. 调用 OpenAI API

    res = openai.ChatCompletion.create(model="gpt-4-1106-preview",messages=message,stream=False,
    )
    
    • openai.ChatCompletion.create:调用 OpenAI 的对话生成 API。
      • model:指定使用的模型,这里是 GPT-4 的预览版。
      • messages:输入的消息列表。
      • stream:是否启用流式输出,False 表示一次性返回完整结果。

    8. 打印 API 响应

    print(res)
    
    • 打印完整的 API 响应,包含模型生成的回复及其他元数据。

    9. 提取并打印生成的回复

    print(res.choices[0].message["content"])
    
    • res.choices:API 返回的生成结果列表。
      • res.choices[0]:第一个生成结果。
      • res.choices[0].message["content"]:提取生成的消息内容并打印。

    10. 代码总结

    • 设置环境变量 OPENAI_API_KEYOPENAI_API_BASE
    • 配置 OpenAI API 的密钥和基础 URL。
    • 定义对话消息并调用 GPT-4 模型生成回复。
    • 打印生成的回复内容。

    11. 注意事项

    1. API 密钥安全性

      • 不要将 API 密钥硬编码在代码中,建议通过环境变量或配置文件加载。

      • 示例:

        export OPENAI_API_KEY="sk-xxx"
        export OPENAI_API_BASE="https://ai.com/v1"
        

        然后在代码中使用 os.getenv 获取。

    2. 模型选择

      • gpt-4-1106-preview 是 GPT-4 的预览版,可能需要特定权限才能访问。
      • 如果无法访问,可以替换为 gpt-3.5-turbo
    3. 错误处理

      • 调用 API 时可能会因网络问题或配额不足失败,建议添加错误处理:

        try:res = openai.ChatCompletion.create(model="gpt-4-1106-preview",messages=message,stream=False,)
        except Exception as e:print(f"An error occurred: {e}")
        
    4. 流式输出:

      • 如果启用 stream=True,API 会以流式方式返回结果,适用于实时交互场景。

    12. 完整代码示例

    import openai
    import os# 设置环境变量
    os.environ["OPENAI_API_KEY"] = "sk-xxx"
    os.environ["OPENAI_API_BASE"] = "https://ai.com/v1"# 打印环境变量
    print(os.environ)# 配置 OpenAI API
    openai.api_key = os.getenv("OPENAI_API_KEY")
    openai.api_base = os.getenv("OPENAI_API_BASE")# 打印 API 配置
    print(openai.api_key)
    print(openai.api_base)# 定义对话消息
    message = [{"role": "system", "content": "How are you today?"}]# 调用 OpenAI API
    try:res = openai.ChatCompletion.create(model="gpt-4-1106-preview",messages=message,stream=False,)# 打印 API 响应print(res)# 提取并打印生成的回复print(res.choices[0].message["content"])
    except Exception as e:print(f"An error occurred: {e}")
    

    13. 输出示例

    假设 API 调用成功,输出可能如下:

    {'OPENAI_API_KEY': 'sk-xxx', 'OPENAI_API_BASE': 'https://ai.com/v1', ...}
    sk-xxx
    https://ai.com/v1
    {"id": "chatcmpl-12345","object": "chat.completion","created": 1677652288,"model": "gpt-4-1106-preview","choices": [{"index": 0,"message": {"role": "assistant","content": "I'm just a computer program, so I don't have feelings, but I'm here to help you!"},"finish_reason": "stop"}]
    }
    I'm just a computer program, so I don't have feelings or experiences, but I'm here and ready to assist you 
    with any questions or tasks you have. How can I help you today?
    

    通过以上步骤,你可以成功调用 OpenAI API 并生成对话回复。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33248.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浏览器崩溃的第一性原理:内存管理的艺术

作者:京东科技 屠永涛 登录后复制 你是否曾经遇到过浏览器突然卡顿,甚至崩溃的情况?尤其是在打开多个标签页或运行复杂的网页应用时,浏览器似乎变得异常脆弱。这种崩溃的背后,往往与内存管理息息相关。 1. 浏览器的内存…

Redis的缓存雪崩、缓存击穿、缓存穿透与缓存预热、缓存降级

一、缓存雪崩: 1、什么是缓存雪崩: 如果缓在某一个时刻出现大规模的key失效,那么就会导致大量的请求打在了数据库上面,导致数据库压力巨大,如果在高并发的情况下,可能瞬间就会导致数据库宕机。这时候如果…

算法刷题整理合集(一)

本篇博客旨在记录自已的算法刷题练习成长,里面注有详细的代码注释以及和个人的思路想法,希望可以给同道之人些许帮助。本人也是算法小白,水平有限,如果文章中有什么错误或遗漏之处,望各位可以在评论区指正出来&#xf…

ubuntu ollama+dify实践

安装ollama 官网的指令太慢了,使用以下指令加速: export OLLAMA_MIRROR"https://ghproxy.cn/https://github.com/ollama/ollama/releases/latest/download" curl -fsSL https://ollama.com/install.sh | sed "s|https://ollama.com/dow…

Cookie与Session详解

Cookie简介 Cookie 是浏览器提供的持久化存储数据的一种机制。是指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地终端上的数据(通常经过加密)。以下是关于 Cookie 的详细介绍: Cookie工作原理 当你访问一个网站时,该网…

Python Openpyxl给Excel增加条件规则

使用openpyxl添加条件格式是一个简单而直接的过程。在使用Excel文件时,条件格式对于数据趋势的可视化、突出显示关键数据点以及使数据更有意义和可理解非常有用。在本文中,我们将详细介绍如何使用openpyxl添加条件格式。 OpenPyxl中的条件格式简介 在进…

离线服务器ollama新增qwen2:0.5b模型

离线服务器ollama新增qwen2:0.5b模型 Dify集成ollama前面已经介绍过离线服务器CentOS使用的docker安装的ollama,其中在ollama中已经安装了deepseek-r1:1.5b。目前的需求是需要再安装一个qwen2:0.5b的模型,那么如何安装呢? 1.首先在有网的服…

零成本本地化搭建开源AI神器LocalAI支持CPU推理运行部署方案

文章目录 前言1. Docker部署2. 简单使用演示3. 安装cpolar内网穿透4. 配置公网地址5. 配置固定公网地址 前言 嘿,小伙伴们!今天给大家带来一个超酷的黑科技——LocalAI。没错,你没听错,就是那个能在你的个人电脑上运行大型语言模…

数据类设计_图片类设计之4_规则类图形混合算法(前端架构)

前言 学的东西多了,要想办法用出来.C和C是偏向底层的语言,直接与数据打交道.尝试做一些和数据方面相关的内容 引入 接续上一篇,讨论图片类型设计出来后在场景中如何表达,以及图片的混合算法.前面的内容属于铺垫和基础,这篇内容和实际联系起来了. 背景图和前景图 这里笔者想先…

Burpsuite使用笔记

Burpsuite使用笔记 抓包设置代理open Browserintercept on输入要抓包的网站回车ForwardHTTP history查看抓包数据其他浏览器配置burpsuite代理浏览器代理器插件配置打开代理同样步骤访问 原理三级目录 抓包 设置代理 open Browser 打开内置浏览器 intercept on 输入要抓包…

使用Dockerfile打包java项目生成镜像部署到Linux_java项目打docker镜像的dockerfile

比起容器、镜像来说,Dockerfile 非常普通,它就是一个纯文本,里面记录了一系列的构建指令,比如选择基础镜像、拷贝文件、运行脚本等等,每个指令都会生成一个 Layer,而 Docker 顺序执行这个文件里的所有步骤&…

移远通信联合德壹发布全球首款搭载端侧大模型的AI具身理疗机器人

在汹涌澎湃的人工智能浪潮中,具身智能正从实验室构想迈向现实应用。移远通信凭借突破性的端侧AI整体解决方案,为AI机器人强势赋能,助力其实现跨行业拓展,从工业制造到服务接待,再到医疗康养,不断改写各行业…

技术视界|构建理想仿真平台,加速机器人智能化落地

在近期的 OpenLoong 线下技术分享会 上,松应科技联合创始人张小波进行了精彩的演讲,深入探讨了仿真技术在机器人智能化发展中的关键作用。他结合行业趋势,剖析了现有仿真平台的挑战,并描绘了未来理想仿真系统的设计理念与实现路径…

JConsole 在 Linux 上的使用

JConsole 在 Linux 上的使用指南 1. 启动 JConsole 远程监控 Linux 服务器上的 JVM 进程 1.1 修改 JMX 配置&#xff0c;允许远程访问 在 Linux 服务器 启动 Java 应用时&#xff0c;需要加上 -Djava.rmi.server.hostname<服务器IP>&#xff0c;完整的启动参数如下&am…

【C#学习】协程等待

来源GPT&#xff0c;仅记录学习 yield return WaitForEndOfFrame() 适用于 渲染结束后再执行代码&#xff0c;但 WebGL 可能不适合这个操作&#xff0c;会拖慢帧率。(渲染得太慢&#xff09; yield return null; 让代码在下一帧的 Update() 里继续运行&#xff0c;更加流畅。 …

店匠科技携手 PayPal 升级支付体验,助力独立站商家实现全球增长

在全球化电商竞争加剧的背景下,独立站为无数商户插上了通向事业成功的翅膀。然而,搭建店铺框架容易,真正实现有效运营却充满挑战。只有当各个环节如齿轮般严丝合缝,独立站运营才能更好地助推行进,实现稳健增长。如今,独立站商家面临着全链路运营的多重挑战。从品牌塑造、营销推…

【算法】数组、链表、栈、队列、树

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;Linux 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 持续更新中...数组、链表点击消除环形链表环形链表 II 栈、队列树 持续更新中… 数组、链表 点击消除 AB5 点击消除 这个题很容…

机器学习实战——音乐流派分类(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​ 1. 简介 音乐流派分类是音乐信息检索&#xff08;Music Information Retrieval, MIR&#xff09;中的一个重要任务&#xff0c;旨在…

【操作系统安全】任务2:用户与用户组

目录 一、用户与用户组介绍 1.1 用户 1.2 用户组 1.3 用户与用户组的关系 二、用户与用户组管理 2.1 用户管理 2.1.1 创建用户 2.1.2 设置用户密码 2.1.3 删除用户 2.2 用户组管理 2.2.1 创建用户组 2.2.2 删除用户组 2.2.3 将用户添加到用户组 三、影子账户创建…

色板在数据可视化中的创新应用

色板在数据可视化中的创新应用&#xff1a;基于色彩感知理论的优化实践 引言 在数据可视化领域&#xff0c;色彩编码系统的设计已成为决定信息传递效能的核心要素。根据《Nature》期刊2024年发布的视觉认知研究&#xff0c;人类大脑对色彩的识别速度比形状快40%&#xff0c;色…