Перейти к основному содержимому

Дополнительные возможности

Для модели Qwen3 доступны дополнительные возможности, расширяющие функционал LLM и дающие больше возможностей для использования. Примеры использования могут несколько отличаться от официальной документации OpenAI и приведены ниже.

Tools

Получение ответа от LLM в виде заранее определенной схемы данных.

Пример для ChatOpenAI

from langchain_openai import ChatOpenAI
from pydantic import BaseModel

class User(BaseModel):
name: str
age: int

message = "Hello, I'm John and I'm 25 years old"
url = "http://localhost:5000/v1/"

client = ChatOpenAI(
model="Compressa-LLM",
api_key="TOKEN_1",
base_url=url,
)
struct_model = client.with_structured_output(User, method="function_calling")

response = struct_model.invoke([
{"role": "system", "content": "/think" },
{"role": "user", "content": message },
], tool_choice="auto", extra_body={"chat_template_kwargs": {"thinking": False}})
print(response.name, response.age)

Пример для ChatQwen

client = ChatQwen(
model="Compressa-LLM",
api_key="TOKEN_1",
api_base=url,
enable_thinking=False,
)

Guidance

Официальная библиотека Guidance на момент осени 2025 года не поддерживает работу с OpenAI подобными клиентами. Вы можете использовать доработанную библиотеку из нашего репозитория.

pip uninstall guidance
pip install git+https://github.com/compressa-ai/compressa-guidance.git
pip show guidance

Должна отображаться версия Version: 0.3.0rc0

Примеры использования

Регулярные выражения

email_generator = model(
model=compressa,
base_url=url,
api_key=key
)

with system():
email_generator += "You are a useful assistant. Don't use any other text than the answer."
with user():
email_generator += "Generate a valid email address."
with assistant():
email_generator += gen("lm_email", regex=r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$", temperature=0.0)