使用 Cerebras 推理引入结构化输出¶
什么是 Cerebras?¶
Cerebras 提供市场上最快的推理速度,比 GPU 快 20 倍。
在此处 cloud.cerebras.ai 注册 Cerebras 推理 API 密钥。
基本用法¶
要使用 Cerebras 推理获得有保证的结构化输出,您可以
- 使用
from_cerebras
方法创建一个新的 Instructor 客户端 - 定义一个 Pydantic 模型并将其作为
response_model
参数传入 - 获得与预期完全一致的经过验证的响应
您还需要安装 Cerebras SDK 才能使用该客户端。您可以使用以下命令安装它。
这确保您拥有使用 Cerebras SDK 和 instructor 所需的依赖项。
入门¶
在运行以下代码之前,您需要确保拥有您的 CEREBRAS_API_KEY。在此处 注册 获取一个。
请确保在您的 shell 中将 CEREBRAS_API_KEY
设置为别名。
完成此操作后,您可以使用以下代码开始使用。
import instructor
from cerebras.cloud.sdk import Cerebras
from pydantic import BaseModel
client = instructor.from_cerebras(Cerebras())
class Person(BaseModel):
name: str
age: int
resp = client.chat.completions.create(
model="llama3.1-70b",
messages=[
{
"role": "user",
"content": "Extract the name and age of the person in this sentence: John Smith is 29 years old.",
}
],
response_model=Person,
)
print(resp)
#> Person(name='John Smith', age=29)
我们支持 AsyncCerebras
和 Cerebras
客户端。
流式处理¶
我们还支持使用 CEREBRAS_JSON
模式下的 Cerebras 客户端进行流式处理,以便您可以利用 Cerebras 的推理速度并在响应到达时进行处理。
import instructor
from cerebras.cloud.sdk import Cerebras
from pydantic import BaseModel
from typing import Iterable
client = instructor.from_cerebras(Cerebras(), mode=instructor.Mode.CEREBRAS_JSON)
class Person(BaseModel):
name: str
age: int
resp = client.chat.completions.create(
model="llama3.1-70b",
messages=[
{
"role": "user",
"content": "Extract all users from this sentence : Chris is 27 and lives in San Francisco, John is 30 and lives in New York while their college roommate Jessica is 26 and lives in London",
}
],
response_model=Iterable[Person],
stream=True,
)
for person in resp:
print(person)
#> Person(name='Chris', age=27)
#> Person(name='John', age=30)
#> Person(name='Jessica', age=26)
就是这样!我们很高兴看到您使用 Instructor 和 Cerebras 构建出什么!如果您对 Cerebras 有任何疑问或需要从 API 密钥等待列表中移出,请联系 sarah.chieng@cerebras.net。