AI大模型探索之路-基础篇2:掌握Chat Completions API的基础与应用

CSDN 2024-07-18 12:01:05 阅读 72

文章目录

前言一、OpenAI 大模型接口列表二、Completions(文本自动补全类模型API)三、Chat Completions(对话聊天类模型API)四、接口开发实践1.简单使用样例2.身份角色设定3.添加聊天背景4.实现文本补全5.少量样本提示5.提高分析能力

总结


前言

OpenAI 大模型提供了一些强大的 API,方便用户与 OpenAI 的大语言模型进行交互。除了上篇中讲到的Embeddings中需要用到的embeddings接口,其核心接口主要是Completions 和Chat Completions接口。


一、OpenAI 大模型接口列表

在这里插入图片描述

二、Completions(文本自动补全类模型API)

自动文本补全、用于生成各类文本任务的模型,可以根据给定的提示(prompt)自动生成和补全文本,如撰写文章

Completions API:

1、 接口:/v1/completions (已淘汰)

2、 模型:gpt-3.5-turbo-instruct, babbage-002, davinci-002

3、 参数:model(模型名称)、prompt(提示词)、max_tokens(响应的tokens阀值)、temperature(温度值0-2,严谨度从高到低)

4、功能:这个 API 接口能够通过预测接下来的文本来生成新的文本。你只需提供一个提示(prompt),模型就会生成一个与提示相关的文本序列。这对于创作文章、歌词、故事或者生成电子邮件回复等任务来说非常有用。

三、Chat Completions(对话聊天类模型API)

ChatCompletions属于Completions的升级版本,专用为对话和聊天场景设计的模型;它通过大量高质量对话文本进行微调,从而更好地理解和生成对话内容

Chat Completions API:(推荐)

1、接口:/v1/chat/completions

2、模型:gpt-4 and dated model releases, gpt-4-turbo-preview and dated model releases, gpt-4-vision-preview, gpt-4-32k and dated model releases, gpt-3.5-turbo and dated model releases, gpt-3.5-turbo-16k and dated model releases, fine-tuned versions of gpt-3.5-turbo

3、参数:model、message(user/system/assistant )、max_tokens、function、function_call 等

message中的参数说明

① user:设置用户提示问题

② system:设置系统模型背景(设置角色/设置知识库/设置样例)

③ assistant :设置模型助手返回样例;可以针对第一个user提示词,设置返回的结果样例

4、功能:这个 API 接口允许你构造一个多轮的聊天会话。你可以提供一系列的消息,每一条消息都有一个角色(role)和内容(content)。角色可以是 system、user 或 assistant,这使得模型可以在多个角色之间进行上下文理解和切换,生成相应的回复。

四、接口开发实践

1.简单使用样例

<code>import os

from openai import OpenAI

client = OpenAI(

api_key=os.environ['OPENAI_API_KEY'], # this is also the default, it can be omitted

)

response = client.chat.completions.create(

model="gpt-3.5-turbo",code>

messages=[

{ "role": "user", "content": "请问,什么是AI大模型?"}

]

)

# 输出response

ChatCompletion(id='chatcmpl-9AXF9T4lURXaU2S4ElFycQpeDHiDQ', choices=[Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='AI大模型是指具有庞大参数数量和复杂结构的人工智能模型。这些模型通常通过深度学习技术训练,并在各种任务中取得了良好的性能表现。AI大模型的例子包括大规模神经网络如BERT、GPT等。这些模型通常需要大量的计算资源和数据来训练,并在自然语言处理、计算机视觉、语音识别等领域中得到广泛应用。', role='assistant', function_call=None, tool_calls=None))], created=1712298095, model='gpt-3.5-turbo-0125', object='chat.completion', system_fingerprint='fp_b28b39ffa8', usage=CompletionUsage(completion_tokens=145, prompt_tokens=19, total_tokens=164))code>

# 输出结果中content

response.choices[0].message.content

'OpenAI是一家非营利人工智能研究实验室,旨在推动人工智能技术的发展,并确保人工智能对人类的利益产生积极影响。OpenAI致力于开发开源的人工智能技术,以促进人工智能领域的创新和发展。该实验室的研究重点包括深度学习、强化学习、自然语言处理、计算机视觉等领域。对于AI行业来说,OpenAI是一个具有推动作用的领先机构,旨在通过共享研究成果和开源技术,促进全球范围内的合作与创新。'

2.身份角色设定

通过Message中的system提前设置大模型的角色身份,让他回答更加专业严谨。

response = client.chat.completions.create(

model="gpt-3.5-turbo",code>

messages=[

{ "role": "system", "content": "你是一名AI大模型资深专家"},

{ "role": "user", "content": "请问什么是AI大模型?"}

]

)

# 输出结果

response.choices[0].message.content

'AI大模型通常指的是参数数量庞大、参数规模庞大的人工智能模型,常常包括数百万到数十亿个参数。这些模型通常经过深度学习训练,能够在多个领域展现出强大的性能,比如自然语言处理、计算机视觉、语音识别等。由于参数规模巨大,这些模型需要庞大的计算资源和数据来进行训练,且通常需要运行在多个GPU或者TPU等高性能计算设备上才能发挥其潜力。近年来,随着计算能力的提升和算法的改进,AI大模型的应用范围也在不断扩大。'

3.添加聊天背景

借助system role设置聊天背景信息,实现类似根据本地知识库回答问题的方法

text = '冬瓜老师,男,1988年9月16日出生于广东省深圳市 \

2011年毕业于深圳大学计算机专业。\

毕业后进入ABC科技公司工作了6年,专注于AI方面的研究,'

#%%

response = client.chat.completions.create(

model="gpt-3.5-turbo",code>

messages=[

{ "role": "system", "content": text},

{ "role": "user", "content": '请问冬瓜老师出生于哪儿?'}

]

)

# 输出结果

response.choices[0].message.content

'冬瓜老师出生于广东省深圳市。'

4.实现文本补全

围绕system的prompt进行进一步的文本补全;当messages中只包含一条system消息时,系统会围绕system进行回答

response = client.chat.completions.create(

model="gpt-3.5-turbo",code>

messages=[

{ "role": "system", "content": "你是一名的脱口秀演员"},

]

)

# 输出结果

response.choices[0].message.content

'嗨!大家好,我是今天的主持人。感谢大家的到场,让我来为大家带来一些欢乐和笑声。今天有没有什么话题是你们特别想要聊的呢?放心,我会为大家带来最新最有趣的段子和笑话。废话不多说,让我们开始今天的表演吧!希望大家尽情享受!'

5.少量样本提示

利用message参数中的assistant,为大模型添加回答的模板样例

Q1 = '小米有6个气球,她又买了3袋,每袋有10个气球,请问她现在总共有多少个气球?'

A1 = '现在小米总共有36个气球。'

Q2 = '小明总共有10个苹果,吃了3个苹果,然后又买了5个苹果,请问现在小明总共有多少个苹果?'

A2 = '现在小明总共有12个苹果。'

#%%

response = client.chat.completions.create(

model="gpt-3.5-turbo",code>

messages=[

{ "role": "user", "content": Q1},

{ "role": "assistant", "content": A1},

{ "role": "user", "content": Q2}

]

)

# 输出结果

response.choices[0].message.content

'现在小明总共有12个苹果。'

## 可以把提示示例写进一条system信息中,作为当前问答的背景信息

response = client.chat.completions.create(

model="gpt-3.5-turbo",code>

messages=[

{ "role": "system", "content": '问题: ' + Q1 + '答案: ' + A1},

{ "role": "user", "content": '问题: ' + Q2 }

]

)

# 输出结果

response.choices[0].message.content

'现在小明总共有12个苹果。'

5.提高分析能力

借助system消息能够作为背景知识的设定,能够对后续的问答消息造成影响;通过它提高大模型思维分析能力

prompt_temp_cot = '请一步步思考并解决问题'

response = client.chat.completions.create(

model="gpt-3.5-turbo",code>

messages=[

{ "role": "system", "content": prompt_temp_cot},

{ "role": "user", "content": Q1}

]

)

# 输出结果

response.choices[0].message.content

'首先,小米原本有6个气球,然后买了3袋气球,每袋有10个。所以现在她有:\n6 + 3 * 10 = 6 + 30 = 36 个气球\n\n所以,小米现在总共有36个气球。'


总结

本章主要介绍ChatCompletions API的特点,以及各种使用样例;下一章节将记录说明怎么基于Chat Completions API和本地知识库实现一个简单的多轮对话机器人。

探索未知,分享所知;点击关注,码路同行,寻道人生!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。