AI大模型 | Python使用OpenAI的API

OpenAI API

OpenAI API可以应用于几乎所有涉及生成自然语言、代码或图像的任务。提供了一系列不同能力级别的模型,适用于不同任务的,并且能够微调自己的自定义模型。

OpenAI API参考:https://platform.openai.com/docs/api-reference

安装OpenAI库

或安装其他的开源大语言模型

pip install openai

设置OpenAI API秘钥

设置OpenAI API秘钥有如下2种方式

import os
from openai import OpenAI

# 方式一
# 设置OpenAI的BASE_URL、API_Key
# client = OpenAI(api_key="", base_url="")

# 方式二
# 设置OpenAI的BASE_URL、API_Key
os.environ["OPENAI_BASE_URL"] = "https://xxx.com/v1"
os.environ["OPENAI_API_KEY"] = "sk-fDqouTlU62yjkBhF46284543Dc8f42438a9529Df74B4Ce65"
client = OpenAI()

列出模型信息

列出当前可用的模型,并提供每个模型的基本信息

models = client.models.list()
print(models)
SyncPage[Model](data=[Model(id='gpt-3.5-turbo-1106', created=1698959748, object='model', owned_by='system'),
                      Model(id='gpt-3.5-turbo-instruct', created=1692901427, object='model', owned_by='system'),
                      Model(id='gpt-3.5-turbo-16k-0613', created=1685474247, object='model', owned_by='openai')],
                object='list')

各项参数:

created: 模型创建的时间戳,单位为Unix时间戳(自1970年1月1日(00:00:00 GMT)以后的秒数)

id: 模型的唯一标识符

object: 表示的是当前对象的类型

owned_by: 表示的是模型的所有者

获取模型ID列表

model_list = []

for model in models.data:
    model_list.append(model.id )

print(model_list)

根据模型ID获取指定模型实例

from openai import OpenAI
client = OpenAI()

gpt = client.models.retrieve("gpt-3.5-turbo")
print(gpt)
Model(id='gpt-3.5-turbo', created=1677610602, object='model', owned_by='openai')

Chat聊天

使用Chat聊天API实现对话任务,以消息列表作为输入,并返回模型生成的消息作为输出。尽管聊天格式旨在使多轮对话变得简单,但它同样适用于没有任何对话的单轮任务。

from openai import OpenAI  # 导入OpenAI库

client = OpenAI()  # 创建OpenAI客户端对象

# 调用模型
completion = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "你是一个乐于助人的助手。"},
        {"role": "user", "content": "你好!"}
    ]
)

# 输出模型回复
print(completion.choices[0].message)
ChatCompletionMessage(content='你好! 有什么问题我可以帮助你解答吗?', role='assistant', function_call=None, tool_calls=None)

消息角色

messages是一个列表,包含多个消息。每个消息都有一个role和content。

消息角色有三种:systemuserassistant。每一种角色都有不同的含义和作用。

system:系统消息主要用于设定对话的背景或上下文。可以帮助模型理解它在对话中的角色和任务。例如,通过系统消息来设定一个场景,让模型知道它是在扮演一个知识丰富的AI助手。

user:用户消息包含用户想要模型回答或完成的请求。用户消息可以是一个问题、一段话,或者任何其他用户希望模型响应的内容。

assistant:助手消息是模型的回复。

请求参数说明

使用OpenAI时,调用大模型API,大概会涉及以下参数:

参数含义
model模型类型
prompt提示,输入给模型的问题或者指示,告诉模型要它做什么
temperature可以影响模型输出的随机性。值越高(接近1),输出就越随机;值越低(接近0),输出就越确定
max_tokens可以限制模型输出的最大长度,长度是以Tokens为单位,而一个Token可以是一个字、一个词或一个字符,取决于语言和模型。
suffix允许用户为模型生成的输出文本后附加一个后缀
top_p与temperature参数类似,使用所谓的核心抽样。模型只会考虑概率质量最高的Tokens。例如,top_p设置为0.1表示只有前10%最有可能的Tokens会被考虑。
n决定为每个提示生成多少个完整的输出。注意:这个参数可能会更快地耗尽Token配额。
stream决定是否实时流式传输生成的Tokens。如果设置为true, Tokens将在生成时被发送
logprobs要求API包括最有可能的Tokens的对数概率
echo设置为true,除了生成的完成内容外,还会回显提示
stop允许指定一个或多个序列,当模型遇到这些序列时会停止生成Tokens,返回的文本将不包含stop序列。
presence_penalty一个在-2.0到2.0之间的数字。正值会惩罚已经出现在文本中的新Tokens,这可以帮助模型更多地谈论新话题
frequency_penalty一个在-2.0到2.0之间的数字。正值会惩罚到目前为止在文本中频繁出现的Tokens,这可以减少模型重复相同内容的可能性
best_of在服务器端生成指定数量的完整输出,然后返回其中概率最高的那个(即每个Token的对数概率最高的那个)
logit_bias可以修改指定Tokens在生成文本中出现的可能性。可以提供一个JSON对象,将Tokens映射到-100到100之间的偏置值
user可选参数,表示最终用户的唯一标识符,可以帮助OpenAl监测和检测滥用

响应参数说明

使用OpenAI时,调用大模型API后,模型响应内容,大概会涉及以下参数:

字段含义
id生成任务分配的唯一标识符
object对象类型的标志,它标志着这是一个聊天模型的生成任务
created生成任务创建的时戳
model生成任务的模型名称
choices返回一个列表,其中包含模型生成的所有条目。如果不指定参数n,则通常只包含一个条目,即索引[0]。
每个条目都包含以下信息:
message: 包含role和content字段
finish_reason: 生成任务结束的原因,可以是stop(遇到停止符)、length(达到最大长度)、content_filter(被OpenAI的内容过滤器移除)
index: 表示该选项在choices列表中的索引位置。
usage提供了关于文本生成过程的统计信息,包括prompt_tokens(提示的Token数量)、completion_tokens(生成的Token数量)、total_.tokens(总的Token数量)

文本生成

文本生成补全(Completion)是该API的核心功能,提供了一个灵活和强大的接口。用户输入一些文本作为提示词(Prompt),API会返回匹配用户提供的指令或上下文的补全文本。

from openai import OpenAI  # 导入OpenAI库

client = OpenAI()  # 创建OpenAI客户端对象

response = client.completions.create(
  model="gpt-3.5-turbo-instruct",
  prompt="你好,很高兴",
  temperature=0.5
)
print(response.choices[0].text)
认识你!我是一个人工智能助手

语音生成

接受三个关键输入:

模型

应转换为音频的文本

用于生成音频的语音
from openai import OpenAI  # 导入OpenAI库

client = OpenAI()  # 创建OpenAI客户端对象

speech_file_path = "./speech.mp3"  # 定义要保存生成语音文件的路径

# 向OpenAI API 发送请求,生成语音文件
response = client.audio.speech.create(
  model="tts-1",  # 指定使用的语音生成模型
  voice="alloy",  # 指定使用的语音风格
  input="Today is a wonderful day to build something people love!"  # 要转换为语音的输入文本
)

# 将生成的语音文件保存到本地磁盘
response.stream_to_file(speech_file_path)

语音选项:alloy、echo、fable、onyx、nova、shimmer

支持的输出格式:默认响应格式为“mp3”,但也可以使用“opus”、“aac”、“flac”和“pcm”等其他格式。

Opus:用于互联网流媒体和通信,低延迟

AAC:用于数字音频压缩,YouTube、Android、iOS 首选

FLAC:用于无损音频压缩,受到音频爱好者存档的青睐

WAV:未压缩的 WAV 音频,适合低延迟应用,以避免解码开销

PCM:与 WAV 类似,但包含 24kHz 的原始样本(16 位有符号、低端),没有标头

旧版OpenAI API

安装OpenAI库

OpenAI API应该是从1.0.0版本开始进行了升级,写法相比新版API有所不同

pip install openai==0.28.1

设置OpenAI API秘钥

import os

os.environ["OPENAI_BASE_URL"] = "https://xxx.com/v1"
os.environ["OPENAI_API_KEY"] = "sk-BGFnOL9Q4c99B378B66cT3BlBKFJ28839b4813bc437B82c2"

Chat聊天

import openai

response = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "你是一个乐于助人的助手。"},
        {"role": "user", "content": "你好啊!"},
    ],
  temperature=0.8,
  max_tokens=30
)
print(response['choices'][0]['message']['content'])

文本生成

import openai

response = openai.completions.create(
  model="gpt-3.5-turbo-instruct",
  prompt="你是"
)
print(response.choices[0].text.strip())

最后分享

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频,免费分享!

在这里插入图片描述

一、大模型全套的学习路线

L1级别:AI大模型时代的华丽登场
L2级别:AI大模型API应用开发工程
L3级别:大模型应用架构进阶实践
L4级别:大模型微调与私有化部署

在这里插入图片描述

达到L4级别也就意味着你具备了在大多数技术岗位上胜任的能力,想要达到顶尖水平,可能还需要更多的专业技能和实战经验。

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

三、大模型经典PDF书籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

在这里插入图片描述

四、AI大模型商业化落地方案

在这里插入图片描述

作为普通人在大模型时代,需要不断提升自己的技术和认知水平,同时还需要具备责任感和伦理意识,为人工智能的健康发展贡献力量。

有需要全套的AI大模型学习资源的小伙伴,可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费

在这里插入图片描述
如有侵权,请联系删除。

  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 首先, 需要申请并获取 OpenAI API 的 key, 然后安装 OpenAIpython SDK (openai). 接下来, 可以使用 SDK 中提供的方法调用 OpenAI API 实现问答功能。具体地, 可以使用 openai.Completion.create() 方法调用 "Davinci" 模型进行问答。参数需要传递问题文本 (prompt) 和可选参数 (如 temperature, max_tokens等)。 获取到结果之后, 可以使用 python 对结果进行处理和展示, 以实现一个简单的问答程序。 下面是一个简单的例子: ``` import openai openai.api_key = "YOUR_API_KEY" prompt = "What is the capital of France?" completions = openai.Completion.create( engine="davinci", prompt=prompt, max_tokens=1024, temperature=0.7, ) message = completions.choices[0].text print(message) ``` 这样你就能使用openaiapi 来封装一个问答程序了 ### 回答2: 要使用PythonOpenAI API封装一个问答程序,可以按照以下步骤进行: 1. 导入必要的Python库和OpenAIPython SDK:首先,我们需要导入必要的Python库,如`openai`、`json`等。同时,确保已安装OpenAIPython SDK,可以通过`pip install openai`安装。 2. 设置OpenAI API密钥:在程序中,需要设置OpenAI API的访问密钥,以便进行API调用。密钥可以从OpenAI网站上获得。 3. 编写代码实现问答功能: - 创建一个函数或类,以便重用和调用问题和答案的逻辑。 - 在函数中,使用OpenAI的`openai.Completion.create()`方法调用问答模型API。 - 将问题作为输入传递给API,并配置相关参数,如`engine`、`temperature`和`max_tokens`等。 - 获取API返回的答案,并返回给调用者。 下面是一个简单的例子来说明上述过程: ```python import openai import json # 设置OpenAI API密钥 openai.api_key = 'your_openai_api_key' # 封装一个问答函数 def ask_question(question): # 调用问答模型API response = openai.Completion.create( engine='davinci-codex', # 指定API使用模型 prompt=question, # 设置输入问题 max_tokens=100, # 设置最大返回标记数 temperature=0.7 # 设置温度,控制生成答案的多样性 ) # 提取答案 answer = response.choices[0].text.strip() return answer # 测试问答功能 question = "你是谁?" answer = ask_question(question) print(f"问题: {question}") print(f"答案: {answer}") ``` 在上述例子中,我们使用了一个名为`davinci-codex`的模型来回答问题,可以根据需要选择适合自己需求的模型。注意,OpenAI API使用计费模式,需要根据使用情况来计算费用。 这只是一个简单的例子,你可以根据自己的需求对问答程序进行更复杂和灵活的封装。 ### 回答3: 要使用PythonOpenAI API封装一个问答程序,可以按照以下步骤进行: 1. 导入必要的库:首先需要安装OpenAI APIPython包,并导入相关库,例如openai和json。 2. 设置API密钥:在OpenAI网站上创建账户并获取API密钥。将密钥设置为环境变量或直接在代码中保存。 3. 初始化OpenAI API使用导入的openai库来初始化OpenAI API使用API密钥作为参数。 4. 输入问题和文本:定义一个函数,接收用户提出的问题和相关文本。将问题和文本作为参数传递给OpenAI API。 5. 发送API请求:使用openai库中的函数来发送API请求,将问题和文本发送给OpenAI模型进行处理。 6. 处理API响应:从API响应中提取答案。API的响应以JSON格式返回,可以使用json库解析响应。 7. 输出答案:将提取到的答案返回给用户。 以下是一个简单的代码示例: ```python import openai import json # 设置OpenAI API密钥 openai.api_key = 'YOUR_API_KEY' # 初始化OpenAI def init_openai(): openai.api_key = 'YOUR_API_KEY' # 执行问答 def ask_question(question, text): # 发送API请求 response = openai.Completion.create( engine='davinci', prompt=question + '\nText: ' + text + '\nQuestion:', max_tokens=100, n=1, stop=None, temperature=0.7 ) # 处理API响应 answer = response.choices[0].text.strip().split('Answer: ')[1] return answer # 例子 def main(): # 初始化OpenAI init_openai() # 输入问题和文本 question = 'What is the capital of France?' text = 'France is a beautiful country located in Europe.' # 执行问答 answer = ask_question(question, text) # 输出答案 print(answer) if __name__ == '__main__': main() ``` 以上代码中的`YOUR_API_KEY`需要替换为你自己在OpenAI网站上获得的API密钥。`question`和`text`表示用户输入的问题和相关文本。可以根据需要进行进一步的优化和错误处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值