OpenAI助手API教程

OpenAI Dev Day标志着人工智能的重要里程碑,揭示了一套开创性的人工智能服务,包括GPTs、GPTs应用商店、GPT-4 Turbo和创新的助手API。

The OpenAI Dev Day marked a significant milestone in artificial intelligence, unveiling a suite of groundbreaking AI services, including GPTs, the GPTs App Store, GPT-4 Turbo, and the innovative Assistants API.

这个API为开发者提供了先进的人工智能工具,使他们能够创建能够处理各种任务的定制化人工智能助手。

在本教程中,我们深入探讨了助手的世界,详细探索了它们的能力、在各行各业的实际应用,并提供了使用Python实现它们的逐步指南。加入我们,一起探索构建自己个性化AI助手的复杂性。

助手API概述

在撰写本文时,助手API处于测试版阶段,OpenAI开发团队正在积极努力地增加更多功能,但在此之前,让我们来探索当前版本提供了哪些功能!

本节将更深入地介绍助手的工作原理以及底层组件之间的交互。

助手 API 如何工作?

助手的两个主要支柱是 OpenAI 的模型和工具。

  • 有各种各样的模型,包括但不限于:GPT-4、GPT-4 Turbo、GPT-3.5、GPT-3、DALL-E、TTS、Whisper、Embeddings、Moderation。这些模型被助手用于执行特定的智能任务。
  • 另一方面,工具使助手能够访问OpenAI的托管工具,如代码解释器和知识检索。它甚至允许用户使用函数调用功能构建自己的工具。

助手的工作原理

助手的工作原理

现在,让我们来探索实施助手的五个主要步骤。

  • 创建和描述助手:助手是使用模型、指南和各种工具开发的专门的人工智能。
  • 启动线程:线程表示用户发起的对话序列,可以添加消息,形成一个有趣的交流。
  • 添加消息:消息由用户的文本输入组成,可以包括文本、文件和图像。
  • 触发助手:激活助手以分析线程,根据需要使用特定工具,并生成合适的响应。

助手 API 的行业应用案例

利用助手 API 可以将人工智能整合到各种业务流程中,提高效率,自动化繁琐的任务,并为用户的查询提供更快速、更准确的响应。

以下是Assistant API的五个引人注目的行业应用案例。

开发支持

助手可以作为一个按需编码助手。利用代码解释器,它可以将一种编程语言的代码片段翻译成另一种编程语言,帮助软件开发并减轻对新语言的学习曲线。这个功能在使用多种编程语言的团队或教育环境中教授编码时特别有用。

企业知识管理

检索功能可以用于组织内的知识管理。通过上传和处理内部文件、报告和手册,助手成为一个集中的知识库。员工可以向助手查询特定信息,提高效率,减少在大型文档集中搜索信息的时间。

客户支持自动化

助手可以集成到客户支持系统中。通过使用函数调用,它可以通过从外部API或数据库获取信息来回答客户的查询,从而有效地自动化对常见问题的回应。这种集成可以通过提供快速、准确的回答和减轻人工支持人员的负担来提升客户体验。

数据分析

通过描述数据分析功能,用户可以要求助手执行复杂的数据操作并生成报告,将自然语言查询转化为结构化的数据分析任务。

IT运维自动化

IT团队可以使用助手来自动化常规操作。通过定义与常见IT任务相对应的功能,例如系统诊断、网络检查或软件更新,助手可以根据用户命令执行这些任务。这种能力可以显著减少IT专业人员在常规维护上花费的时间,使他们能够专注于更复杂的问题。

实践操作:开始使用OpenAI Assistants API

在了解了OpenAI API的基础上,让我们进入一个更实际的用例。本节将重点介绍如何创建一个能够从PDF文件中获取知识的助手。

完整的端到端笔记本可在DataCamp Workspace上找到。

知识检索工作流程

对于任何技术实现,最好提供一个可视化的工作流程,以说明正在开发的整个应用程序的主要组件之间的交互。

这个工作流程突出了实施助手的五个主要步骤,从文件上传到生成最终响应。

知识检索工作流程的五个主要步骤

知识检索工作流程的五个主要步骤

  • 文件上传:该过程始于用户上传希望与之交互的PDF文件。
  • 助手创建:助手专门设计用于处理和理解上传的PDF文件中的信息。
  • 启动交互:这是对话线程的起点,用户在此提供输入消息,供助手处理。
  • 触发助手:现在,助手处理输入消息以生成相关的响应。
  • 响应输出:这是最后阶段,助手将响应显示给用户的消息。

设置OpenAI KEY

成功复现本教程结果所需的主要工具包括:

  • Python:这是我们在本教程中将使用的主要编程语言。另一个选择是NodeJS。
  • OpenAI:与OpenAI服务进行交互的包。我们的Python中的OpenAI API速查表提供了完整的概述,以掌握如何利用OpenAI API的基础知识。
  • OS:操作系统包,用于配置环境变量。

第一步是获取OpenAI KEY,该密钥有助于访问DALL-E 3模型。主要步骤如下所示:

创建OpenAI KEY的四个主要步骤 创建OpenAI KEY的四个主要步骤

上述的四个主要步骤是不言自明的。然而,从官方OpenAI网站创建一个账户是很重要的。

您可以从我们的OpenAI API入门指南:实践教程和最佳实践进一步探索OpenAI API。它向您介绍了OpenAI API的用途、使用API的实践方法以及所有的最佳实践。

开始构建助手

一旦您获得了KEY,请确保不与任何人分享。该密钥应保持私密。接下来,按照以下方式将密钥设置为环境变量,以便能够使用:

import os
OPENAI_API_KEY= "<YOUR PRIVATE KEY>"
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY

文件上传

以下辅助函数利用“create”函数自动将用户想要与之交互的文件上传到其OpenAI账户中。

“create”函数有两个主要参数:

  • 要上传的文件的路径
  • 该文件的使用目的,在这种情况下是“助手”
def upload_file(file_path):
    
	# 使用“助手”目的上传文件
	file_to_upload = client.files.create(
  	file=open(file_path, "rb"),
  	purpose='assistants'
	)
     return file_to_upload

最后使用辅助函数来触发位于data文件夹中的转换器论文的上传过程。

transformer_paper_path = "./data/transformer_paper.pdf"
file_to_upload = upload_file(transformer_paper_path)

函数成功执行后,transformer_paper.pdf 被上传并在文件选项卡中可见,如下所示。

已上传到OpenAI账户的Transformer论文

将Transformer论文上传到OpenAI账户

助手创建

助手的创建是使用client.beta.assistants模块中的create函数完成的,它有五个主要参数:

  • 名称:这是助手的创建者给予的名称。让我们称之为科学论文助手。
  • 指令:描述助手应该如何行为或回答问题。在这个用例中,助手应用以下指令:“你是一个有礼貌和专业的知识检索助手。使用提供的文档作为知识库来回答问题。”
  • 模型:用于知识检索的底层模型。可以使用任何GPT-3或GPT-4模型。本文使用的是撰写本文时的最新模型,即gpt-4-1106-preview模型。
  • 工具:要使用的工具类型。有两种可能的选择:代码解释器和检索。本文的重点是检索,因此我们忽略解释器。
  • 文件ID:知识库中每个文件的唯一标识符列表。

辅助函数create_assistant将所有这些信息组合起来,创建助手,如下所示:

def create_assistant(assistant_name,
my_instruction,
uploaded_file,
model=”gpt-4-1106-preview”):

my_assistant = client.beta.assistants.create(
name = assistant_name,
instructions = my_instruction,
model=”gpt-4-1106-preview”,
tools=[{“type”: “retrieval”}],
file_ids=[uploaded_file.id]
)

return my_assistant

现在我们可以运行这个函数来创建助手,使用指令和助手名称:

inst="您是一个有礼貌和专业的知识检索助手。使用提供的文档作为知识库来回答问题"
assistant_name="科学论文助手"

my_assistant = create_assistant(assistant_name, inst, uploaded_file)

启动交互

一旦助手创建完成,自然的下一步是使用用户的消息或请求来启动一个交互线程。

使用client.beta.threads和client.beta.threads.messages中的create函数创建线程和消息。

这两个特性是通过initiate_interaction辅助函数进行组合的。

def initiate_interaction(user_message, uploaded_file):

my_thread = client.beta.threads.create()
message = client.beta.threads.messages.create(thread_id=my_thread.id,
role=”user”,
content=user_message,
file_ids=[uploaded_file.id]
)

return my_thread

用户消息变量可以启动交互:

user_message = "为什么作者在论文中使用自注意力策略?"
my_thread = initiate_interaction(user_message, uploaded_file)

触发助手并生成回复

从上面的对话中,可以触发助手来回复用户的消息。触发动作在辅助函数trigger_assistant中定义,回复由response变量给出。

def trigger_assistant():
run = client.beta.threads.runs.create(
thread_id = my_thread.id,
assistant_id = my_assistant.id,
)

trigger_assistant()

messages = client.beta.threads.messages.list(
thread_id = my_thread.id
)

response = messages.data[0].content[0].text.value
response

执行以上代码成功后,将生成以下响应。

助手对用户消息的回应

助手对用户消息的回应

这个回答正是作者在第6页上提到的问题的答案。

提到transformer论文的段落

提到transformer paper的回应的段落

使用OpenAI Assistants API的最佳实践

在将Assistant API应用到项目中时,遵循最佳实践非常重要,以确保最佳性能和用户体验。以下是一些需要考虑的关键点。

  • 明确目标:为助手设定具体目标,以确保它能有效地满足预期目的和用户需求。
  • 优化数据输入:数据的质量和相关性对于助手的响应准确性和效率至关重要,例如上传的文件。
  • 优先保护用户隐私:实施强大的数据隐私协议,保护用户信息并遵守相关的数据保护法律。
  • 测试和迭代:定期在真实场景中测试助手,并根据反馈进行迭代,以提高性能和用户体验。
  • 提供清晰的文档:提供全面的助手使用指南,帮助用户了解其功能和限制。

结论

总之,本文探讨了助手API,介绍了其工作原理以及在不同行业中的应用。我们首先介绍了API及其关键功能,为更深入的理解做了铺垫。

接下来,我们研究了助手API的具体功能,并讨论了如何在各个业务领域中应用这些功能,展示了它的广泛实用性。

我们还提供了一个逐步指南,教你如何开始使用助手API,以便更轻松地为你的需求进行设置。

此外,我们还分享了一些在使用API时需要牢记的重要最佳实践,以确保您能充分利用它。

简而言之,助手API是一个多功能且有价值的工具,可以适应许多用途,对于那些学会有效使用它的人来说,它带来了重大的好处。

你是否渴望提升你对OpenAI API的体验,并采用更具创造性的方法?我们的DALL-E 3 API综合指南将帮助你发现DALL-E 3 API的变革力量,涵盖其关键特性、行业应用和用户释放创造潜力的技巧。

如果你对这个主题完全是新手,为什么不从我们的使用OpenAI API进行工作课程开始呢?