Использование API Compressa
В Compressa есть интегрированный API-слой, совместимый с Chat Completion API от OpenAI. Это означает, что разработчики могут использовать существующую клиентскую библиотеку от OpenAI (включая библиотеку на Langchain) и адаптировать текущий код с минимальными изменениями для работы с Compressa.
Полная схема REST API, совместимого с OpenAI, доступна здесь.
Вот как заменить модели OpenAI на Compressa
- Python (клиент OpenAI)
- Python (OpenAI Langchain)
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)
# pip install langchain-core - если у вас еще нет этого пакета
# pip install langchain - если у вас еще нет этого пакета
# pip install openai - если у вас еще нет этого пакета
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
base_url="https://compressa-api.mil-team.ru/v1", # при локальном запуске замените на ваш url, например http://localhost:8080/v1/chat/completions
api_key="Ваш_API_ключ_Compressa", # при локальном запуске вы можете не требовать ключ или создать свой
model="Compressa-LLM"
)
messages = [
(
"system",
"Ты умеешь сочинять смешные анкедоты.",
),
("human", "Напиши короткий и смешной анекдот про программиста."),
]
ai_msg = llm.invoke(messages)
print(f"Ответ модели: {ai_msg.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)
#...