使用 Cortex 的结构化输出¶
Cortex.cpp 是一个运行时,可帮助您直接运行开源大型语言模型 (LLMs)。它支持多种模型,并为其 Jan 平台提供支持。本指南提供了如何使用 Cortex 与 instructor 进行结构化输出的快速入门。
快速开始¶
Instructor 内置支持 OpenAI 客户端,因此您无需安装任何额外内容。
完成后,请务必拉取您想使用的模型。在本示例中,我们将使用量化的 llama3.2 模型。
让我们开始初始化下面的客户端 - 请注意,我们需要在此处提供基本 URL 和 API 密钥。API 密钥并不重要,仅用于避免 OpenAI 客户端抛出错误。
import os
from openai import OpenAI
client = from_openai(
openai.OpenAI(
base_url="http://localhost:39281/v1",
api_key="this is a fake api key that doesn't matter",
)
)
简单的用户示例 (同步)¶
from instructor import from_openai
from pydantic import BaseModel
import openai
client = from_openai(
openai.OpenAI(
base_url="http://localhost:39281/v1",
api_key="this is a fake api key that doesn't matter",
)
)
class User(BaseModel):
name: str
age: int
resp = client.chat.completions.create(
model="llama3.2:3b-gguf-q4-km",
messages=[{"role": "user", "content": "Ivan is 27 and lives in Singapore"}],
response_model=User,
)
print(resp)
# > name='Ivan', age=27
简单的用户示例 (异步)¶
import os
from openai import AsyncOpenAI
import instructor
from pydantic import BaseModel
import asyncio
# Initialize with API key
client = from_openai(
openai.AsyncOpenAI(
base_url="http://localhost:39281/v1",
api_key="this is a fake api key that doesn't matter",
)
)
class User(BaseModel):
name: str
age: int
async def extract_user():
user = await client.chat.completions.create(
model="llama3.2:3b-gguf-q4-km",
messages=[
{"role": "user", "content": "Extract: Jason is 25 years old"},
],
response_model=User,
)
return user
# Run async function
user = asyncio.run(extract_user())
print(user)
#> User(name='Jason', age=25)
嵌套示例¶
from instructor import from_openai
from pydantic import BaseModel
import openai
client = from_openai(
openai.OpenAI(
base_url="http://localhost:39281/v1",
api_key="this is a fake api key that doesn't matter",
)
)
class Address(BaseModel):
street: str
city: str
country: str
class User(BaseModel):
name: str
age: int
addresses: list[Address]
user = client.chat.completions.create(
model="llama3.2:3b-gguf-q4-km",
messages=[
{
"role": "user",
"content": """
Extract: Jason is 25 years old.
He lives at 123 Main St, New York, USA
and has a summer house at 456 Beach Rd, Miami, USA
""",
},
],
response_model=User,
)
print(user)
#> {
#> 'name': 'Jason',
#> 'age': 25,
#> 'addresses': [
#> {
#> 'street': '123 Main St',
#> 'city': 'New York',
#> 'country': 'USA'
#> },
#> {
#> 'street': '456 Beach Rd',
#> 'city': 'Miami',
#> 'country': 'USA'
#> }
#> ]
#> }
在本教程中,我们了解了如何使用 Cortex 运行本地模型,同时通过我们简单的接口简化了围绕重试和函数调用的许多逻辑。
未来我们将发布更多关于 Cortex 以及如何使用本地模型的内容,请持续关注。
相关资源¶
更新和兼容性¶
Instructor 与最新的 OpenAI API 版本和模型保持兼容。请查看更新日志以获取更新信息。