gpt-4o-mini 等大模型的第三方中转API接口教程

news2024/11/25 16:40:41

How to use gpt-4o-mini by Python

文章目录

    • 1 python环境安装
      • 1.1 anaconda 添加到系统变量
      • 1.2 anaconda 创建新的python虚拟环境
    • 2 langchain 与 openai python包安装
    • 3 openai API 接入
      • 3.1 第三方API站点
      • 3.2 windows配置
      • 3.3 大模型API调用消费估算
    • 4 相关教程
    • 重要事项

1 python环境安装

默认大家都安装了anaconda

若没有安装点击下载 anaconda, Download Now | Anaconda

1.1 anaconda 添加到系统变量

如果在windows进入命令行输入conda,若看到下述的输出结果,说明anaconda已经添加到了系统环境中,可跳过本章节。

在这里插入图片描述

如果没有反应,你需要将conda添加到系统环境路径中,如下面的图片进行添加。

一般在安装anaconda的时候,会有一个选择,是否要将conda,添加到系统路径中:|
若当时勾了,它会自动添加到系统路径中,就无需进行下述操作,;
若当时没勾,按照下述提示,把个人自己的anaconda安装地址的路径,添加进环境变量中;

如下图所示,先找到自己电脑上 anaconda的安装路径:

请添加图片描述

如下图所示,再把anaconda的下述两个文件夹的路径,添加到系统环境变量中。

请添加图片描述

请添加图片描述

请添加图片描述

1.2 anaconda 创建新的python虚拟环境

Python的每个大型的项目都应该使用单独的python环境,从而避免包冲突;

若读者觉得没必要创建新环境,愿意使用原始环境,那么可跳过当前章节;

  • 查看当前有哪些python环境

    conda env list

    如下图所示,当前只有一个base环境。

  • init

    若是第一次使用conda,请先运行 conda init,然后关闭命令窗口,再开一个新的命令窗口。
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • conda activate base

    能得到下述结果,说明conda配置成功
    在这里插入图片描述

  • 创建新python环境

    因为python的base环境,python是3.11.7版本,新环境的python版本也设置为3.11.7。

    新环境的python版本设置为多少,因人而异

    创建新的python环境,取名为 llm (large language model 大语言模型简称)

    conda create --name llm python=3.11.7
    

    外链图片转存失败,源站可能有防盗链机制

    输入 y,然后回车:在这里插入图片描述

    输入 conda env list,可发现新环境已添加成功
    输入 conda activate llm, 激活刚才创建的llm 环境,如下图所示就可发现环境完成了从base到llm的切换。
    在这里插入图片描述
    接下来,就在当前的激活的llm窗口中,完成python包的安装。

2 langchain 与 openai python包安装

对 langchain 感兴趣的,可点击查看langchain的官方文档 How to install LangChain packages | 🦜️🔗 LangChain

直接在命令窗口输入下述装包命令,即可完成包的安装:

pip install langchain langchain-openai langchain-core langchain-community langchain-experimental

如下图所示完成了包的安装:

在这里插入图片描述

3 openai API 接入

3.1 第三方API站点

由于OpenAI服务器在海外,且对一些国家不提供服务。出于科研与实验的需要,可使用第三方的服务,由第三方的站点把数据包转发OpenAI服务器。

按需选用,包括且不限于下述的网站:

  • https://api.chatfire.cn/register?aff=zJhM 充值:1$ =1¥,API收费略高于OpenAI
  • https://api2.aigcbest.top/ 充值:1$ = 2.5¥, API收费与OpenAI一致
  • https://www.gptapi.us/register?aff=9xEy 充值:1$ = 1¥,API收费与OpenAI一致,50元起充

本文以 http://api.chatfire.cn 作为示例:
在这里插入图片描述
先添加令牌,再复制密钥,密钥格式:sk-xxx。

点击查看,可使用的模型列表:ChatfireAPI

值得注意的是:gpt-4o-mini 是性价比高的模型。其他的模型都相对比较贵。

运行下述代码即可获得 gpt-4o-mini 的回答:

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-4o-mini", 
    base_url="https://api.chatfire.cn/v1/",
    api_key="sk-xxx", # 在这里填入你的密钥
    )
res = llm.invoke("你是谁?请你简要做一下,自我介绍?")
print(res)

下述是大模型返回的内容:

我是GPT-4o mini,一个大型语言模型,由OpenAI训练。我的主要功能是回答问题、提供信息和帮助解决各种语言相关的任务。无论是写作、学习还是日常交流,我都能提供支持。如果你有任何问题,欢迎随时问我!

在运行程序时,可以发现10秒后才出结果。

加快批量处理速度:

  • 加钱找客服,要求使用直连的专线,要多出3倍多的钱。
  • 使用多线程加速,如果只使用一个令牌会被限速。弄很多个账号,使用很多个令牌构建令牌池,每次发起请求时,随机从令牌池中获取令牌。

3.2 windows配置

在[3.1章节](# 3.1 第三方API站点)中,需要在代码中填入第三方API接口的网址和密钥。

在代码中,填入密钥有泄漏风险(因为代码要云端备份和与人分享),最重要的是要输入网址和密钥很麻烦。

故可以将url和key,添加到系统环境变量中,在后续的代码中就无需填写这两个参数。

若你是Mac系统和Linux系统,执行下述命令:

export OPENAI_API_BASE=https://api.chatfire.cn/v1/
export OPENAI_API_KEY=sk-xxx

若你是Windows系统,按照下述方式配置系统变量:

与[1.1 anaconda 添加到系统变量](# 1.1 anaconda 添加到系统变量) 一样,打开系统环境变量,与上次不同的是这一次是新建
在这里插入图片描述

在这里插入图片描述

请添加图片描述

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-4o-mini", 
    )
res = llm.invoke("鲁迅和周树人是同一个人吗?")
print(res)

如下结果所示,无需在代码中填写网址和密钥一样可以获得大模型的输出结果。

content='是的,鲁迅和周树人是同一个人。鲁迅是周树人的笔名,他是中国现代文学的重要作家。' additional_kwargs={'refusal': None} response_metadata={'token_usage': {'completion_tokens': 46, 'prompt_tokens': 24, 'total_tokens': 63}, 'model_name': 'gpt-4o-mini', 'system_fingerprint': None, 'finish_reason': 'stop', 'logprobs': None} id='run-3762857a-6c2a-4fbb-ad5d-524f020eaf7c-0' usage_metadata={'input_tokens': 24, 'output_tokens': 46, 'total_tokens': 63}

3.3 大模型API调用消费估算

下述是大模型的输出结果,不仅给出了文本,还给出了相应的输入和输出耗费的token数。

AIMessage(
content='我是GPT-4o mini,一个大型语言模型,由OpenAI训练。我的主要功能是回答问题、提供信息和帮助解决各种语言相关的任务。无论是写作、学习还是日常交流,我都能提供支持。如果你有任何问题,欢迎随时问我!', 
additional_kwargs={'refusal': None}, 
response_metadata={'token_usage': {'completion_tokens': 96, 'prompt_tokens': 27, 'total_tokens': 116}, 'model_name': 'gpt-4o-mini', 
'system_fingerprint': None, finish_reason': 'stop', 'logprobs': None}, 
id='run-b9964b57-83e4-4a2d-8444-81bc5d21abc1-0',
usage_metadata={'input_tokens': 27, 'output_tokens': 96, 'total_tokens': 116})

根据下图矩行框的高度预估这一次调用消费是大概是 9 x 10-5 $。

在这里插入图片描述

下述这张图是该网站关于 gpt-4o-mini 的收费标准:
请添加图片描述

1M = 1024 x 1024 = 1048576 = 1.04 x 106

大模型输入收费是:0.2249999 / 1M token;

大模型输出收费是:0.899999 / 1M token;

usage_metadata={'input_tokens': 27, 'output_tokens': 96, 'total_tokens': 116})

所以本次的消费金额计算过程如下:

27 × 0.225 + 96 × 0.90 1.04 × 1 0 6 = 8.89 × 1 0 − 5 \frac{27 \times 0.225 + 96 \times 0.90}{1.04 \times 10^{6}} = 8.89 \times 10^{-5} 1.04×10627×0.225+96×0.90=8.89×105
我们的计算结果与网站的扣费是一致的。

日常使用时,1个字大概约等于1 token,可使用上述计算过程预估出大致的扣费金额。

4 相关教程

下述是LangChain的官方教程文档:

Tutorials | 🦜️🔗 LangChain

How-to guides | 🦜️🔗 LangChain

若要使用大模型,写好提示词至关重要,下述是一些不错的提示词教程:

  • ChatGPT提示工程师&吴恩达教你写提示词|prompt engineering【完整中字九集全】 代码教程
  • 【45分钟系统学习】ChatGPT Prompt提示词工程 基础>少样本>思维链>联网>认知搜索>ReAct实现ChatGPT插件

重要事项

  • 写好提示词

  • 给少样的例子,便于大模型学习

    few-shot 提示词示例:

    prompt = """
    参考下述例子,生成相应的回答,请你从中提取出今年生产总值的预期增长值是多少?
    按照下述提供的json格式返回结果。
    
    Input: 孝感市1894年文件节选:主要预期目标是:全市生产总值增长10%以上
    Output: {"city":"孝感市", "year":"1894", "GDP_growth":"10%"}
    
    Input: 上海市1895年文件节选:初步核算,全市生产总值比上年增长11.1%,\n今年经济社会发展的主要预期目标是:生产总值增长12%,全社会固定资产投资增长20%,'
    Output: {"city":"上海市", "year":"1895", "GDP_growth":"12%"}
    
    Input: {filename}年文件节选:{content}
    Output: 
    """.strip()
    
    

    相关博客推荐:利用langchain 做大模型 Few-shot Learning 提示,包括固定和向量相似的动态样本筛选

  • 让大模型每次只做一件小事,聚焦有利于提高大模型的能力

  • 无论大模型的效果看起来有多好,总有一些大模型会生成失败或错误的样本。观察大模型生成 的答案,使用python根据规则找回这些错误的样本进行后处理。

  • 让大模型一步一步思考,给出原因,通过大模型生成的原因可以分析大模型得出结论的原因,再逐步修改提示词和示例

    从Input中提取出生产总值的预期增长百分数。若没有提及预期生产总值就返回null。
    若文本中有预计生产总值和预期生产总值,则应只保留预期生产总值。
    针对Input中文本,一步一步地思考,思考过程保存在Reason中,再依据Reason生成Output。
    参考下述例子,学习这些例子内在的逻辑。
    只能通过当前的Input生成Reason,最终的输出结果Output按照json格式返回。
    
    Input: 抚顺市2004年文件节选:2004年的主要预期目标是:国内生产总值实现360亿元,增长14.5%
    Reason: 当前年份是2004年,文本中提到2004年国内生产总值预期增长14.5%。
    Output: {"city":"抚顺市", "year":"2004", "GDP_growth":"14.5%"}
    
    Input: 上海市xxxx年文件节选:初步核算,全市生产总值比上年增长11.1%,农民人均纯收入增长10.2%,年初确定的主要预期目标和各项工作任务全面超额完成\n今年经济社会发展的主要预期目标是:生产总值增长12%,全社会固定资产投资增长20%,'
    Reason: 全市生产总值比上年增长11.1%,这是去年的总结;生产总值增长12%,这才是今年的预期;所以要返回12%。
    Output: {"city":"上海市", "year":"xxxx", "GDP_growth":"12%"}
    
  • 让大模型先处理得到结果,再使用提示词创建大模型扮演老师,审核上一个大模型生成的答案,找出做的不对的样本

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

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

相关文章

【六】阿伟开始搭建Kafka学习环境

阿伟开始搭建Kafka学习环境 概述 上一篇文章阿伟学习了Kafka的核心概念,并且把市面上流行的消息中间件特性进行了梳理和对比,方便大家在学习过程中进行对比学习,最后梳理了一些Kafka使用中经常遇到的Kafka难题以及解决思路,经过上…

PDPS软件 那智机器人 (丰田版)离线程序导出处理

在PDPS仿真软件中导出的那智机器人离线程序,一般是无法直接给TFD控制装置-那智机器人(丰田式样版)导入及识别使用。因此要对导出的程序进行转换编译处理,才能给TFD那智机器人(丰田式样版)导入离线程序。以下…

comfyUI工作流-Flux大模型应用/黑神话悟空角色生成(附lora)

​ 是什么让悟空开始搬砖,这莫不是新的副本 其实我们用AI就能生成这种黑神话悟空的衍生图片 让悟空做ceo,做老师,上工地搬砖 七十二变,体验人生百态 操作很简单,只需要一个comfyUI工作流,你就能任意生成…

Studying-CodeTop | 3. 无重复字符的最长子串、206. 反转链表、146. LRU 缓存

目录 3. 无重复字符的最长子串 206. 反转链表 146. LRU 缓存 解题过程: 3. 无重复字符的最长子串 题目:3. 无重复字符的最长子串 - 力扣(LeetCode) 学习:本题题意很好理解,我们需要从所有不含有重复…

Linux 软件编程学习第十七天

1.select的缺点: 1.select监听的文件描述符集合是一个数组,有上限(1024个) 2.select监听的文件描述符集合在应用层,内核层监听事件后需要传递给用户层带来资源开销 3.select需要用户手动查找产生事件的文件…

数据复制一(主从复制详解)

目录 一、主从复制 二、同步复制和异步复制 三、节点失效处理方案 四、复制日志的实现 五、复制滞后问题 读自己的写 单调读 前缀一致读 数据复制就是相同的数据在多台机器上传输,多台机器可以在一个机房也不可以跨区域。通过数据复制有以下好处&#xff1a…

「数组」希尔排序 / 区间增量优化(C++)

目录 概述 思路 核心概念:增量d 算法过程 流程 Code 优化方案 区间增量优化 Code(pro) 复杂度 概述 我们在「数组」冒泡排序|选择排序|插入排序 / 及优化方案(C)中讲解了插入排序。 它有这么两个特点: ①待排序元素较…

<数据集>无人机航拍不同高度牧羊识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:6065张 标注数量(xml文件个数):6065 标注数量(txt文件个数):6065 标注类别数:1 标注类别名称:[sheep] 序号类别名称图片数框数1sheep6065149785 使用标注工具&…

【Spring】初识Spring MVC

文章目录 前言一、MVC是什么?二、学习Spring MVC建立连接RequestMapping注解注解的使用细节 三、传递参数的情况传递单个参数1.传递String2.传递包装类/基本类型3.参数重命名(RequestParam) 传递多个参数传递对象传递数组传递集合参数为变量传递文件小细节 四、JSON…

MCAL--MCU (S32K144)

AutoSAR中MCU Driver主要提供了用于基本的控制器初始化、下电、复位功能的服务,同时也为其它MCAL层需要的功能提供对应的服务函数。通常来说在AutoSAR的架构中MCU主要支持以下几个功能: 1.初始化控制器的外设时钟、系统时钟、PLL等,对所有控制器内各个外设模块用到的时钟提供…

Spring之@Bean注解

1. 使用方式 1.1 Configuration Bean 1.1.1 创建实体类 User Data NoArgsConstructor public class User {private String name;public User(String name) {this.name name;} } 1.1.2 创建配置类 UserConfig Configuration public class UserConfig {Beanpublic User us…

Web客户端软件测试

目录 1.测试分类 按照软件产生的阶段划分 按照代码可见度划分 其他测试 2.质量模型:衡量一个软件质量的维度 3.软件测试 1.单功能测试 等价类划分法:一种用少量数据获得较好测试效果的工具 边界值分析法:一个边界范围限制选取测试数…

最近云计算领域有哪些重大进展?

在云计算领域,近期确实涌现出了一系列令人瞩目的重大进展。以下是一些关键点,为您概述了当前的科技动态: 中国云计算市场迅猛发展: 中国云计算市场正处于快速发展期,年复合增长率超过40%。公有云市场规模增长49.3%至32…

深信达反向沙箱:构筑内网安全与成本效益的双重防线

# 深信达反向沙箱:内网安全与成本控制的双重保障 在数字化时代,企业面临着日益复杂的网络安全挑战。内网安全尤其关键,因为它涉及到企业的核心数据和运营。深信达的反向沙箱技术,作为一种创新的安全解决方案,为政企单…

厦门凯酷全科技有限公司:抖音小店前沿的探索者与引领者

在数字经济浪潮席卷全球的今天,电商平台已成为推动消费升级、激发市场活力的关键力量。其中,抖音作为短视频与直播电商的佼佼者,正以其独特的内容生态和庞大的用户基础,重新定义着零售行业的边界。在这一背景下,厦门凯…

学习记录——day33 HTTP

目录 一、HTTP相关概念 二、客服端请求 1、请求首部 2、 响应首部 三、线程实现HTTP并发服务器 一、HTTP相关概念 1、HTTP,全称Hyper Text Transfer Protocol,用于万维网(world wide web)进行超文本学习的传输协议 2、HTTP属…

如何使用 Java 记录简化 Spring Data 中的数据实体

Java 开发人员一直依赖 Spring Data 来实现高效的数据访问。但是,随着 Java Records 的引入,数据实体的管理方式发生了重大变化。 在本文中,我们将讨论 Java Records 在 Spring Data 应用程序中的集成。我们将探讨使用 Java 记录创建健壮的数…

CGAL 线性插值(自然邻近坐标)

文章目录 一、简介二、实现代码三、实现效果一、简介 自然邻近坐标插值(Natural Neighbor Interpolation)是一种基于Voronoi图的插值方法。它被广泛应用于地理信息系统(GIS)、计算几何以及科学计算领域。该方法的核心思想是利用数据点的Voronoi单元来确定插值点的权重,从而…

基于java的酒店管理系统设计与实现

系统分析与设计 需求分析 1.系统概要 根据餐饮系统的流程,完成从用户登录到开台点菜,到结账收银,到统计一条线的信息化管理,因此整个餐饮管理信息系统的研发内容就是开发一整套餐饮管理信息系统,实现餐饮业务的计算…

【三维重建】2D Gaussian Splatting:几何准确的2D辐射场(更新中)

标题:2D Gaussian Splatting for Geometrically Accurate Radiance Fields 项目地址:https://github.com/hbb1/2d-gaussian-splatting 文章目录 功能输入输出 一、摘要二、引言深入分析解读 三、相关工作3.1新视角合成3.2 3D重建3.3 可微分基于点的图形…