补丁¶
Instructor 通过三个新关键词增强了客户端功能,以实现向后兼容。这使得可以照常使用增强型客户端,并获得结构化输出的好处。
response_model
:定义chat.completions.create
的响应类型。max_retries
:确定对失败的chat.completions.create
验证的重试次数。
默认模式是 `instructor.Mode.TOOLS`,这是 OpenAI 客户端的推荐模式。此模式最稳定,也是 OpenAI 客户端最推荐的模式。其他模式适用于其他客户端,不建议用于 OpenAI 客户端。
工具调用¶
这是 OpenAI 客户端的推荐方法。它是最稳定的,因为函数功能即将被弃用。
import Instructor from "@instructor-ai/instructor"
import OpenAI from "openai"
const client = Instructor({
client: new OpenAI({
apiKey: process.env.OPENAI_API_KEY ?? undefined,
organization: process.env.OPENAI_ORG_ID ?? undefined
}),
mode: "TOOLS"
})
函数调用¶
请注意,对于 OpenAI,函数调用功能很快将被弃用,转而使用 TOOL 模式。但对于其他客户端仍将支持。
import Instructor from "@instructor-ai/instructor"
import OpenAI from "openai"
const client = Instructor({
client: new OpenAI({
apiKey: process.env.OPENAI_API_KEY ?? undefined,
organization: process.env.OPENAI_ORG_ID ?? undefined
}),
mode: "FUNCTIONS"
})
JSON 模式¶
JSON 模式使用 OpenAI 的 JSON 格式进行响应,通过在 `chat.completions.create` 方法中设置 `response_format={"type": "json_object"}`。
import Instructor from "@instructor-ai/instructor"
import OpenAI from "openai"
const client = Instructor({
client: new OpenAI({
apiKey: process.env.OPENAI_API_KEY ?? undefined,
organization: process.env.OPENAI_ORG_ID ?? undefined
}),
mode: "JSON"
})
JSON Schema 模式¶
JSON Schema 模式使用 OpenAI 的 JSON 格式进行响应,通过在 `chat.completions.create` 方法中设置 `response_format={"type": "json_object", schema:response_model.model_json_schema()}`。此模式仅适用于部分客户端(例如 llama-cpp-python, Anyscale, Together)。
import Instructor from "@instructor-ai/instructor"
import OpenAI from "openai"
const client = Instructor({
client: new OpenAI({
apiKey: process.env.OPENAI_API_KEY ?? undefined,
organization: process.env.OPENAI_ORG_ID ?? undefined
}),
mode: "JSON_SCHEMA"
})
Markdown JSON 模式¶
这只是要求以 JSON 格式返回响应,但不推荐使用,将来可能不再支持。此模式仅保留用于支持视觉模型,并且无法提供 Instructor 的全部优势。
实验性
不推荐使用此模式,将来可能不再支持。此模式仅保留用于支持视觉模型。