跳到内容

使用 Cerebras 推理引入结构化输出

什么是 Cerebras?

Cerebras 提供市场上最快的推理速度,比 GPU 快 20 倍。

在此处 cloud.cerebras.ai 注册 Cerebras 推理 API 密钥。

基本用法

要使用 Cerebras 推理获得有保证的结构化输出,您可以

  1. 使用 from_cerebras 方法创建一个新的 Instructor 客户端
  2. 定义一个 Pydantic 模型并将其作为 response_model 参数传入
  3. 获得与预期完全一致的经过验证的响应

您还需要安装 Cerebras SDK 才能使用该客户端。您可以使用以下命令安装它。

pip install "instructor[cerebras_cloud_sdk]"

这确保您拥有使用 Cerebras SDK 和 instructor 所需的依赖项。

入门

在运行以下代码之前,您需要确保拥有您的 CEREBRAS_API_KEY。在此处 注册 获取一个。

请确保在您的 shell 中将 CEREBRAS_API_KEY 设置为别名。

export CEREBRAS_API_KEY=<your-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)

我们支持 AsyncCerebrasCerebras 客户端。

流式处理

我们还支持使用 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