【OpenAI库】从0到1深入理解Python调用OpenAI库的完整教程:从入门到实际运用

news2024/12/26 22:37:38

文章目录

    • Moss前沿AI
    • 一、初识OpenAI API
      • 1.1 获取API-Key(两种方案)
      • 1.2 安装OpenAI库
    • 二、Python调用OpenAI API的基础设置
      • 2.1 设置API密钥和Base URL
      • 2.2 参数详解
    • 三、构建一个简单的聊天应用
      • 3.1 创建聊天请求
      • 3.2 参数详解
      • 3.3 处理响应
    • 四、完整代码示例
      • 1.Python示例代码(基础)
      • 2.Python示例代码(高阶)
    • Moss前沿AI
    • 五、总结

Moss前沿AI

【OpenAI】获取OpenAI API Key的多种方式全攻略:从入门到精通,再到详解教程!!

【VScode】VSCode中的智能AI-GPT编程利器,全面揭秘ChatMoss & ChatGPT中文版

【GPT-o1系列模型!支持Open API调用、自定义助手、文件上传等强大功能,助您提升工作效率!】>>> - CodeMoss & ChatGPT-AI中文版

在当今的人工智能时代,OpenAI的API为开发者提供了强大的工具来构建智能应用程序。无论你是AI领域的新手还是经验丰富的开发者,掌握如何使用Python调用OpenAI库都是一项必备技能。在这篇文章中,我们将详细解析如何使用Python与OpenAI API进行交互,从基础设置到高级应用,帮助你从入门到精通。

在这里插入图片描述

一、初识OpenAI API

OpenAI API是一个强大的接口,允许开发者通过简单的HTTP请求与OpenAI的模型进行交互。通过API,你可以实现自然语言处理、文本生成、对话系统等多种功能。为了开始使用,你需要一个API密钥和基本的Python编程知识。

1.1 获取API-Key(两种方案)

  • 1、从 OpenAI官网 获取API-Key。(点击名称就能够访问)
  • 2、从 CodeMoss工具 获取API-Key。(点击名称就能够访问)

1.2 安装OpenAI库

在开始编写代码之前,确保你的Python环境中已经安装了OpenAI库。你可以通过以下命令安装:

pip install openai

二、Python调用OpenAI API的基础设置

在这一部分,我们将介绍如何设置API密钥和基本的请求参数。

2.1 设置API密钥和Base URL

在使用OpenAI库时,首先需要配置API密钥和Base URL。以下是一个简单的示例:

  • 如果用的OpenAI官网提供的KEY那么就不需要填写BaseUrl,因为openai库已经内置了URL:https://api.openai.com/v1。源码和示例如下:

示例:

from openai import OpenAI

client = OpenAI(

    api_key="api_key",  # 只需要填写key就可以了

)
response = client.chat.completions.create(
    messages=[
        {'role': 'user', 'content': "1+1"}, ],
    model='gpt-3.5-turbo',
    stream=True
)
for chunk in response:
    print(chunk.choices[0].delta.content, end="", flush=True)

openai源码:
在这里插入图片描述

  • 如果你用的是第三方的,那么就要需要填写BaseUrl。但是要注意的是BaseUrl的地址链接参数,是否和源码一致。在下面的示例中你可以看到内置的BaseUrl链接后面是带v1的:https://api.openai.com/v1。所以你要检查从其他地方获取的BaseUrl是否完整,例如:CodeMoss里面的获取的就不带v1,那么我们就需要手动在后面拼接v1。如下:

配置前获取的BaseUrl

base_url="https://testchatmoss.aihao123.cn/luomacode-api/open-api/"

配置后的BaseUrl

base_url="https://testchatmoss.aihao123.cn/luomacode-api/open-api/v1"

注意结尾
在这里插入图片描述

代码示例:

from openai import OpenAI

client = OpenAI(

    api_key="api_key",  # 填写提供的api_key
    base_url="base_url"  # 填写提供的base_url

)
response = client.chat.completions.create(
    messages=[
        {'role': 'user', 'content': "1+1"}, ],
    model='gpt-3.5-turbo',
    stream=True
)
for chunk in response:
    print(chunk.choices[0].delta.content, end="", flush=True)

2.2 参数详解

  • api_key: 这是你从某个渠道获取的API KEY,用于验证你的身份。
  • base_url: 这是API的基础URL,通常由OpenAI或者某个渠道提供。

三、构建一个简单的聊天应用

接下来,我们将构建一个简单的聊天应用,展示如何使用OpenAI的聊天模型。

3.1 创建聊天请求

使用OpenAI的聊天模型,你可以创建一个对话请求。以下是一个简单的示例:

response = client.chat.completions.create(
    messages=[
        {'role': 'user', 'content': "1+1"},
    ],
    model='gpt-3.5-turbo',
    stream=True
)

3.2 参数详解

  • messages: 这是一个列表,content是你的的问题。user是你的角色。
  • model: 指定使用的模型版本,如gpt-3.5-turbo
  • stream: 如果设置为True,则响应将以流的形式返回。

3.3 处理响应

处理响应时,你可以逐块读取数据并输出结果:

for chunk in response:
    print(chunk.choices[0].delta.content, end="", flush=True)

四、完整代码示例

我这个是CodeMoss工具获取的api_key,示例代码就配置了base_url,完整代码和获取KEY的地址如下:>>> 获取OpenAI API Key的多种方式

1.Python示例代码(基础)

基本使用:直接调用,没有设置系统提示词的代码


from openai import OpenAI
client = OpenAI(
    api_key="这里是CodeMoss的api_key",
    base_url="这里是上图的base_url"
)

response = client.chat.completions.create(
    messages=[
    	# 把用户提示词传进来content
        {'role': 'user', 'content': "Python的排序由几种方式?"},
    ],
    model='gpt-4',  # 上面写了可以调用的模型
    stream=True  # 一定要设置True
)

for chunk in response:
    print(chunk.choices[0].delta.content, end="", flush=True)

输出结果:
在这里插入图片描述

2.Python示例代码(高阶)

进阶代码:根据用户反馈的问题,用GPT进行问题分类

from openai import OpenAI

# 创建OpenAI客户端
client = OpenAI(
    api_key="your_api_key",  # 你自己创建创建的Key
    base_url="your_base_url"  # 你的base_url
)

def api(content):
    print()
    
    # 这里是系统提示词
    sysContent = f"请对下面的内容进行分类,并且描述出对应分类的理由。你只需要根据用户的内容输出下面几种类型:bug类型,用户体验问题,用户吐槽." \
                 f"输出格式:[类型]-[问题:{content}]-[分析的理由]"
    response = client.chat.completions.create(
        messages=[
            # 把系统提示词传进来sysContent
            {'role': 'system', 'content': sysContent},
            # 把用户提示词传进来content
            {'role': 'user', 'content': content},
        ],
        # 这是模型
        model='gpt-4',  # 上面写了可以调用的模型
        stream=True
    )

    for chunk in response:
        print(chunk.choices[0].delta.content, end="", flush=True)


if __name__ == '__main__':
    content = "这个页面不太好看,交互不太好,点击按钮的时候不太方便"
    api(content)

输出结果:
在这里插入图片描述

Moss前沿AI

【OpenAI】获取OpenAI API Key的多种方式全攻略:从入门到精通,再到详解教程!!

【VScode】VSCode中的智能AI-GPT编程利器,全面揭秘ChatMoss & ChatGPT中文版

【GPT-o1系列模型!支持Open API调用、自定义助手、文件上传等强大功能,助您提升工作效率!】>>> - CodeMoss & ChatGPT-AI中文版

五、总结

通过本文的学习,你应该已经掌握了如何使用Python调用OpenAI库的基本技能。从获取API密钥到构建聊天应用,再到探索高级功能,这些知识将帮助你在AI开发的道路上走得更远。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

42 基于单片机的智能浇花系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,采样DHT11温湿度传感器检测温湿度,通过LCD1602显示 4*4按键矩阵可以设置温度湿度阈值,温度大于阈值则开启水泵,湿度大于阈值则开启风扇…

typecho 添加主题备份及恢复功能

typecho 换主题很简单,但是确有一个比较麻烦的事情,就是主题配置在切换主题的同时也就被删除了。于是,今天我下决心要弄一个备份恢复的功能出来。网上查了很久,都没有找到适合的(不过还是有参考价值的)。最…

docker部署RustDesk自建服务器

客户端: Releases rustdesk/rustdesk GitHub 服务端: 项目官方地址:GitHub - rustdesk/rustdesk-server: RustDesk Server Program 1、拉取RustDesk库 docker pull rustdesk/rustdesk-server:latest 阿里云库: docker pu…

从零开始了解推荐系统(算法构建、召回、粗排、精排、重排、冷启动、衡量标准)

算法构建 推荐算法流程 实际上是一种信息处理逻辑,当获取了用户与内容的信息之后,按照一定的逻辑处理信息后,产生推荐结果。热度排行榜就是最简单的一种推荐方法,依赖的逻辑是当一个内容被大多数用户喜欢,那么大概率…

【第 1 章 初识 C 语言】1.8 使用 C 语言的 7 个步骤

目录 1.8 使用 C 语言的 7 个步骤 1.8.1 第 1 步:定义程序的目标 1.8.2 第 2 步:设计程序 1.8.3 第 3 步:编写代码 1.8.4 第 4 步:编译 1.8.5 第 5 步:运行程序 1.8.6 第 6 步:测试和调试程序 1.8.…

基于Matlab卡尔曼滤波的GPS/INS集成导航系统研究与实现

随着智能交通和无人驾驶技术的迅猛发展,精确可靠的导航系统已成为提升车辆定位精度与安全性的重要技术。全球定位系统(GPS)和惯性导航系统(INS)在导航应用中各具优势:GPS提供全球定位信息,而INS…

C++知识整理day3类与对象(下)——赋值运算符重载、取地址重载、列表初始化、友元、匿名对象、static

文章目录 1.赋值运算符重载1.1 运算符重载1.2 赋值运算符重载 2.取地址重载2.1 const成员函数2.2 取地址运算符重载 3.类与对象的补充3.1 再探构造函数---初始化列表3.2 类型转换3.3 static成员3.4 友元3.5 内部类3.6 匿名对象3.7 对象拷贝时的编译器优化 1.赋值运算符重载 赋…

深入解析级联操作与SQL完整性约束异常的解决方法

目录 前言1. 外键约束与级联操作概述1.1 什么是外键约束1.2 级联操作的实际应用场景 2. 错误分析:SQLIntegrityConstraintViolationException2.1 错误场景描述2.2 触发错误的根本原因 3. 解决方法及优化建议3.1 数据库级别的解决方案3.2 应用层的解决方案 4. 友好提…

dns实验3:主从同步-完全区域传输

服务器192.168.234.111(主服务器),打开配置文件: 打开配置文件: 关闭防火墙,改宽松模式: 重启服务: 服务器192.168.234.112(从服务器),打开配置文…

LeetCode刷题 -- 分治快排

目录 颜色分类题目解析算法原理代码 排序数组题目解析算法原理代码 数组中第K个最大元素题目解析算法原理代码 LCR 159. 库存管理 III题目解析算法原理代码 颜色分类 题目链接 题目解析 数组分为三块 算法原理 1.如果nums[i] 0,left, i下标对应元素交换&#xff0c…

【论文笔记】Leveraging the Power of MLLMs for Gloss-Free Sign Language Translation

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: Leveraging the Power of …

TsingtaoAI具身智能高校实训方案通过华为昇腾技术认证

日前,TsingtaoAI推出的“具身智能高校实训解决方案-从AI大模型机器人到通用具身智能”基于华为技术有限公司AI框架昇思MindSpore,完成并通过昇腾相互兼容性技术认证。 TsingtaoAI&华为昇腾联合解决方案 本项目“具身智能高校实训解决方案”以实现高…

如何抓取亚马逊页面动态加载的内容:Python爬虫实践指南

引言 在现代电商领域,数据的重要性不言而喻。亚马逊作为全球领先的电商平台,其页面上动态加载的内容包含了丰富的商品信息。然而,传统的爬虫技术往往难以应对JavaScript动态加载的内容。本文将详细介绍如何使用Python结合Selenium工具来抓取…

tcpdump抓包wireshark分析

背景 分析特定协议的数据包,如 HTTP、DNS、TCP、UDP 等,诊断网络问题,例如连接故障、延迟和数据包丢失。 大概过程 1.安装tcpdump yum update yum install tcpdump2.抓包,从当前时间起,一小时后停止&#xff0c…

如何进行Appium实现移动端UI自动化测试呢?

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 Appium是一个开源跨平台移动应用自动化测试框架。 既然只是想学习下Appium如何入门,那么我们就直奔主题。文章结构如下: 为什么要使用…

骨架行为识别-论文复现

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

Unity 设计模式-观察者模式(Observer Pattern)详解

观察者模式 观察者模式(Observer Pattern)是一种行为型设计模式,它定义了对象之间的一对多依赖关系。当一个对象的状态发生变化时,它的所有依赖者(观察者)都会收到通知并自动更新。这种模式用于事件处理系…

【webApp之h5端实战】首页评分组件的原生实现

关于评分组件,我们经常在现代前端框架中用到,UI美观效果丰富,使用体验是非常不错的。现在自己动手使用原生js封装下评分组件,可以用在自己的项目中。 组件实现原理 点击的❤左侧包括自己都是高亮的样式,右侧都是灰色的样式,这样就能把组件的状态区分开了。右边再加上辅…

unity与android拓展

一.AndroidStudio打包 1.通过Unity导出Android Studio能够打开的工程 步骤 1.设置导出基本信息:公司名、游戏名、图标、包名等关键信息 2.在File——>Build Settings中,勾选 Export Project 选项 3.点击Export 导出按钮 2.在Android Studio中打开Un…

几种常见的javascript设计模式

摘要 最近开发HarmonyOSApp,使用的Arkts语言,此语言类似后端C#语言风格,同时兼顾写后端接口的我突然想总结一下近8年前端开发中无意中使用的设计模式,我们用到了却不知属于哪些,下面和大家分享一下。 什么是前端设计…