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

Использование API Compressa

В Compressa есть интегрированный API-слой, совместимый с Chat Completion API от OpenAI. Это означает, что разработчики могут использовать существующую клиентскую библиотеку от OpenAI (включая библиотеку на Langchain) и адаптировать текущий код с минимальными изменениями для работы с Compressa.

Полная схема REST API, совместимого с OpenAI, доступна здесь.

Вот как заменить модели OpenAI на Compressa

from openai import OpenAI

client = OpenAI(
base_url="https://compressa-api.mil-team.ru/v1", # при локальном запуске замените на ваш url, например http://localhost:8080/v1/chat/completions
api_key="Ваш_API_ключ_Compressa" # при локальном запуске вы можете не требовать ключ или создать свой
)

chat_completion = client.chat.completions.create(
model="Compressa-LLM",
messages=[
{"role": "system", "content": "Ты умеешь сочинять смешные анкедоты."},
{"role": "user", "content": "Напиши короткий и смешной анекдот про программиста."},
],
stream=False,
)
print(chat_completion.choices[0].message.content)

Также вы можете включить опцию стриминга токенов, доступную в клиенте OpenAI

#pip install openai - если у вас еще нет этого пакета

from openai import OpenAI

client = OpenAI(
base_url="https://compressa-api.mil-team.ru/v1", #при локальном запуске замените на ваш url, например http://localhost:8080/v1/chat/completions
api_key="Ваш_API_ключ_Compressa" #при локальном запуске вы можете не требовать ключ или создать свой
)

completion = client.chat.completions.create(
model="Compressa-LLM",
messages=[
{"role": "system", "content": "Ты умеешь сочинять смешные анкедоты."},
{"role": "user", "content": "Напиши короткий и смешной анекдот про программиста."}
],
stream=True
)

for chunk in completion:
print(chunk.choices[0].delta)

#ChoiceDelta(content='Б', function_call=None, refusal=None, role='assistant', tool_calls=None)
#ChoiceDelta(content='ы', function_call=None, refusal=None, role='assistant', tool_calls=None)
#ChoiceDelta(content='л', function_call=None, refusal=None, role='assistant', tool_calls=None)
#ChoiceDelta(content=' у', function_call=None, refusal=None, role='assistant', tool_calls=None)
#...