示例展示了OpenAI最新发布的一些重要功能,包括视觉处理、Assistants API、JSON模式、系统指纹等,以及如何在LangChain中使用这些功能。它还介绍了一些与Azure相关的重大变更,以及如何使用工具进行并行函数调用。这些新功能和变更为开发更复杂、更强大的AI应用程序提供了更多可能性。
探索 OpenAI V1 功能
2023年11月6日,OpenAI发布了一些新功能,并将其Python SDK版本升级到1.0.0。示例展示了新功能以及如何在LangChain中使用它们。
# 需要 openai>=1.1.0, langchain>=0.0.335, langchain-experimental>=0.0.39
!pip install -U openai langchain langchain-experimental
# 安装或升级必要的库
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_openai import ChatOpenAI
# 导入必要的类
视觉功能
OpenAI发布了多模态模型,可以接受文本和图像序列作为输入。
chat = ChatOpenAI(model="gpt-4-vision-preview", max_tokens=256)
chat.invoke(
[
HumanMessage(
content=[
{
"type": "text", "text": "这张图片显示了什么"},
{
"type": "image_url",
"image_url": {
"url": "https://raw.githubusercontent.com/langchain-ai/langchain/master/docs/static/img/langchain_stack.png",
"detail": "auto",
},
},
]
)
]
)
# 创建一个支持视觉功能的ChatOpenAI实例
# 使用模型处理包含文本和图像的消息
OpenAI assistants
Assistants API允许您在自己的应用程序中构建AI助手。Assistant有指令,可以利用模型、工具和知识来响应用户查询。Assistants API目前支持三种类型的工具:代码解释器、检索和函数调用。
您可以使用OpenAI工具或自定义工具与OpenAI Assistants交互。当仅使用OpenAI工具时,您可以直接调用assistant并获得最终答案。当使用自定义工具时,您可以使用内置的AgentExecutor运行assistant和工具执行循环,或轻松编写自己的执行器。
以下我们展示了与Assistants交互的不同方式。作为一个简单的例子,让我们构建一个可以编写和运行代码的数学辅导员。
仅使用OpenAI工具
from langchain.agents.openai_assistant import OpenAIAssistantRunnable
# 导入OpenAIAssistantRunnable类
interpreter_assistant = OpenAIAssistantRunnable.create_assistant(
name="langchain assistant",
instructions="你是一个个人数学辅导员。编写并运行代码来回答数学问题。",
tools=[{
"type": "code_interpreter"}]