AGI大模型(4):编程调用 OpenAI API

1 代码演示

官⽅⽂档:https://platform.openai.com/docs/api-reference

1.1 安装模块

复制代码
# Mac电脑把pip换成pip3
pip install openai
pip install python-dotenv

1.2 示例代码

复制代码
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
# 初始化 OpenAI 服务。
client = OpenAI()
# 消息格式
messages = [
 {
 "role": "system",
 "content": "你是AI助⼿⼩于,是⼤模型课堂的助教。这⻔课每周三、五上课。"
 },
 {
 "role": "user",
 "content": "哪天有课?"
 },
]
# 调⽤ GPT-3.5
chat_completion = client.chat.completions.create(
 model="gpt-3.5-turbo",
 messages=messages
)
# 输出回复
print(chat_completion.choices[0].message.content)

1.3 新建环境变量文件.env文件

复制代码
OPENAI_API_KEY="你的key"
OPENAI_BASE_URL="openai的url"

结果如下:

2 OpenAI中的⻆⾊理解

2.1 system(系统)

在 OpenAI 的技术框架中,system 代表了整个系统或应⽤程序。System 的⽬标是理解⽤户的意图和需求,并根据这些信息⽣成合适的响应。

System 的核⼼组件是预训练的 NLP 模型,如 GPT-3。这些模型通过在海量⽂本数据上进⾏训练,学习到了丰富的语⾔知识和理解能⼒。当⽤户输⼊⼀个查询或请求时,system 使⽤这些模型来理解⽤户的意图,并⽣成相应的响应。

2.2 user(⽤户)

user 代表了与系统交互的⽤户。⽤户可以是⼈类⽤户,也可以是其他系统或应⽤程序。User 的⽬标是向 system 发送请求,获取所需的信息或服务。

User 的输⼊可以采⽤多种形式,如⽂本、语⾳、图像等。在⽂本交互场景中,⽤户通常输⼊⼀个查询或问题,system 需要根据这个输⼊⽣成合适的响应。在语⾳交互场景中,⽤户的输⼊是语⾳信号,system 需要将其转换为⽂本,然后⽣成响应。在图像交互场景中,⽤户的输⼊是图像数据,system 需要识别图像内容,并根据其⽣成响应。

2.3 assistant(助⼿)

assistant 代表了 system ⽣成的响应。助⼿可以是⽂本、语⾳、图像等形式,其⽬标是满⾜⽤户的请求,提供所需的信息或服务。

assistant 的⽣成过程包括多个步骤。⾸先,system 使⽤预训练的 NLP 模型来理解⽤户的意图。然后,根据⽤户的意图和需求,system 使⽤相应的机器学习算法和数据存储来⽣成助⼿。最后,system 将助⼿以合适的形式返回给⽤户。

3 OpenAI国内购买使用

地址:https://ai-yyds.com/

⾃主选择!⽆需翻墙就可以使⽤

4 国产⼤模型API调用

4.1 DeepSeek

**API地址:**https://platform.deepseek.com/usage

**接⼝⽂档:**https://api-docs.deepseek.com/zh-cn/

**API Keys申请地址:**https://platform.deepseek.com/api_keys

示例代码

复制代码
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
import os
deepseek_api_key = os.getenv("DEEPSEEK_API_KEY")
client = OpenAI(api_key=deepseek_api_key, base_url="https://api.deepseek.com")
response = client.chat.completions.create(
 model="deepseek-chat",
 messages=[
 {"role": "system", "content": "You are a helpful assistant"},
 {"role": "user", "content": "Hello"},
 ],
 stream=False
)
print(response.choices[0].message.content)

.env文件

复制代码
DEEPSEEK_API_KEY="你的key"

结果如下:

4.2 阿⾥云通义千问

**地址:**https://help.aliyun.com/zh/model-studio/getting-started/what-ismodel-studio

**如何获取API Key:**https://help.aliyun.com/zh/model-studio/developer-reference/get-api-key

示例代码:

复制代码
import os
from dotenv import load_dotenv
load_dotenv()
from openai import OpenAI
client = OpenAI(
 # 若没有配置环境变量,请⽤百炼API Key将下⾏替换为:api_key="sk-xxx",
 api_key=os.getenv("DASHSCOPE_API_KEY"), # 如何获取API Key:https://hel
p.aliyun.com/zh/model-studio/developer-reference/get-api-key
 base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
 model="qwen-plus", # 模型列表:https://help.aliyun.com/zh/model-studio/
getting-started/models
 messages=[
 {'role': 'system', 'content': 'You are a helpful assistant.'},
 {'role': 'user', 'content': '你是谁?'}
 ]
)
print(completion.choices[0].message.content)

4.3 智普清⾔

**地址:**https://bigmodel.cn/console/overview

**API Keys申请:**https://bigmodel.cn/usercenter/proj-mgmt/apikeys

代码示例

复制代码
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
import os
client = OpenAI(
 api_key=os.getenv("ZHIPUAI_API_KEY"),
 base_url="https://open.bigmodel.cn/api/paas/v4/"
)
completion = client.chat.completions.create(
 model="glm-4-flash", 
 messages=[ 
 {"role": "system", "content": "你是⼀个聪明且富有创造⼒的⼩说作家"}, 
 {"role": "user", "content": "请你作为童话故事⼤王,写⼀篇短篇童话故事,故
事的主题是要永远保持⼀颗善良的⼼,要能够激发⼉童的学习兴趣和想象⼒,同时也能够帮助⼉童更
好地理解和接受故事中所蕴含的道理和价值观。"}
 ],
 top_p=0.7,
 temperature=0.9
)
print(completion.choices[0].message)

4.4 kimi

**API申请地址:**https://platform.moonshot.cn/console/api-keys

⽂档地址:

https://platform.moonshot.cn/docs/api/chat#公开的服务地址

代码示例

复制代码
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
import os
client = OpenAI(
 api_key = os.getenv("MOONSHOT_API_KEY"),
 base_url = "https://api.moonshot.cn/v1",
)
completion = client.chat.completions.create(
 model = "moonshot-v1-8k",
 messages = [
 {"role": "system", "content": "你是 Kimi,由 Moonshot AI 提供的⼈⼯智
能助⼿,你更擅⻓中⽂和英⽂的对话。你会为⽤户提供安全,有帮助,准确的回答。同时,你会拒绝
⼀切涉及恐怖主义,种族歧视,⻩⾊暴⼒等问题的回答。Moonshot AI 为专有名词,不可翻译成其
他语⾔。"},
 {"role": "user", "content": "你好,我叫李雷,1+1等于多少?"}
 ],
 temperature = 0.3,
)
print(completion.choices[0].message.content)
相关推荐
小林学习编程30 分钟前
SpringBoot校园失物招领信息平台
java·spring boot·后端
撸码到无法自拔31 分钟前
docker常见命令
java·spring cloud·docker·容器·eureka
heart000_11 小时前
IDEA 插件推荐:提升编程效率
java·ide·intellij-idea
菜菜why1 小时前
AutoDL租用服务器教程
服务器
IT专业服务商1 小时前
联想 SR550 服务器,配置 RAID 5教程!
运维·服务器·windows·microsoft·硬件架构
ŧ榕树先生2 小时前
查看jdk是否安装并且配置成功?(Android studio安装前的准备)
java·jdk
未来的JAVA高级开发工程师2 小时前
适配器模式
java
LUCIAZZZ2 小时前
JVM之内存管理(一)
java·jvm·spring·操作系统·springboot
D_aniel_2 小时前
排序算法-计数排序
java·排序算法·计数排序
极小狐2 小时前
极狐GitLab 通用软件包存储库功能介绍
java·数据库·c#·gitlab·maven