欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > API基础(上)

API基础(上)

2025/5/11 20:00:46 来源:https://blog.csdn.net/2302_79795489/article/details/145347701  浏览:    关键词:API基础(上)

1、为什么要api

通过代码与AI大模型对话,可以精细控制ai回复的参数(如最大token长度),可以利用提示模板,可以把ai集成到自己的系统流程中。

如何做呢?一个简单好用的方法是调用API。

直接调用api,不要求我们在本地计算机上配置高端硬件以达到运行模型所需要的算力和储存空间的要求,因为模型是在服务提供方的服务器上。

 

2、什么是api

API(Application Programming Interface,应用程序编程接口)定义了两个软件程序之间的服务合约,即双方是如何使用请求和响应来进行通讯的,就像是“如何与服务对话的说明书”。

绝大多数API是基于HTTP协议的。

我们的代码程序就是客户端,把给ai的提示放到请求内容里,发送给服务端(比如open ai的服务器),得到对方的响应(包含ai的回复)

 

一个请求-响应的例子如下:

为了方便用户使用ai服务,大模型公司在API的基础上封装了相应的Python库。即不需要从头构建HTTP请求,而是可以直接使用Python库里的函数、方法。这就需要查阅官方文档来学习如何使用了。

 

3、什么是api密钥,如何获取

API密钥:让服务提供方能识别和验证客户端请求,确认请求来自哪个账号,以及追踪计费和使用频率等。

一般把密钥设置为电脑的环境变量,就不会暴露在代码里了,更加安全。

此电脑右键——>属性——>高级系统设置——>高级——>环境变量——>新建系统变量OPENAI_API_KEY,粘贴密钥值即可。这样代码就可以自动通过环境变量获取密钥的值。

注意:设置好环境变量后,要重启vscode才能生效。

 

在申请openai的api密钥后,还要充值才能用,而付款需要海外信用卡。这里可以通过wildcard官网购买海外服务。不用自己注册openai账号,绑卡付款。

API 随心用使用教程(不用海外账号)

 

4、如何使用api

如何使用api,即如何使用openai的python库呢?

首先在vscode终端pip install openai(要求python版本3.7以上)

或者在jupyter notebook中运行!pip install openai(感叹号前缀相当于让那个命令在系统shell里运行)

# 引入os模块,os 模块提供了与操作系统进行交互的功能
import os
# 引入OpenAI类
from openai import OpenAI# 获取环境变量 OPENAI_API_KEY 的值(没找到则返回None)
OPENAI_API_KEY = os.getenv('OPENAI_API_KEY')# 检查环境变量是否成功获取
if OPENAI_API_KEY is None:print("未找到环境变量 OPENAI_API_KEY,请检查系统设置。")else:# 用OpenAI类来创建发给AI服务端的请求client = OpenAI(base_url="https://api.gptsapi.net/v1",api_key=OPENAI_API_KEY)# 获取AI服务端的响应response = client.chat.completions.create(# 用什么模型model="gpt-3.5-turbo",# 传给模型的对话内容(消息列表,每条消息又用字典表示,消息中的元素可以包含系统消息、用户提示和AI回答)messages=[{"role":"system","content":"You are a nice AI assitant." #系统消息给ai传递背景,或给ai安排个性角色(可选)},{"role":"user","content":"Hello,I'm Lili.And who are you?" #用户提示},{"role":"assistant","content":"I'm ChatGPT.Can I help you?" #AI回答(可选)},{"role":"user","content":"What's my name?"}])print(response)print(response.choices[0].message.content)

也可以直接使用 OpenAI() 而不需要显式传递 api_key 参数,只要在系统环境变量中已经设置了 OPENAI_API_KEY并且重启了vscode。

reponse是一个ChatCompletion实例,回答储存在choices属性的第一个元素的message属性的content属性里。因此是打印response.choices[0].message.content

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词