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

UI интерфейс

URL: http://ваш_адрес:8080/chat/

UI Playground для тестирования разных настроек LLM и подбора промптов. Не забудьте указать user токен в специальном поле. Также в интерфейсе можно переключить разные LoRA адаптеры к одной модели, если вы провели их деплой.

API интерфейс

Вы можете взаимодействовать с LLM можно через нашу Python библиотеку Compressa для Langchain или через прямой cURL запрос.

Кроме этого, наши API совместимы с OpenAI, подробнее на отдельной странице.

примечание

При изначальной установке в Compressa LLM используется модель "Compressa-LLM". Если вы заменили LLM модель, в примерах ниже необходимо указать ваше название модели.

Вызов модели без стриминга

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

from langchain_compressa import ChatCompressa

llm = ChatCompressa(
base_url="http://ваш_адрес:8080/v1",
api_key="Ваш_user_API_ключ",
temperature=0.7,
max_tokens=150,
stream="false",
model="Compressa-LLM"
)

messages = [
("system", "Ты полезный помощник, который переводит с русского на английский. Переведи предложение пользователя."),
("human", "Я люблю программирование.")
]

ai_msg = llm.invoke(messages)
print(f"Ответ модели: {ai_msg.content}")

# Ответ модели: I love programming.

Также приведем пример использования LLM в рамках цепочки Langchain (chains):

from langchain_compressa import ChatCompressa
from langchain_core.prompts import ChatPromptTemplate

llm = ChatCompressa(
base_url="http://ваш_адрес:8080/v1",
api_key="Ваш_user_API_ключ",
temperature=0.7,
max_tokens=150,
stream="false",
model="Compressa-LLM"
)

prompt = ChatPromptTemplate.from_messages(
[
(
"system",
"Ты полезный помощник, который переводит с {input_language} на {output_language}.",
),
("human", "{input}"),
]
)

chain = prompt | llm
result = chain.invoke(
{
"input_language": "русский",
"output_language": "английский",
"input": "Я люблю программирование.",
}
)

print(f"Результат цепочки: {result.content}")

# Результат цепочки: I love programming.

Вызов модели с опцией стриминга ответа

import requests

response = requests.post(
url="http://ваш_адрес:8080/v1/chat/completions",
headers={
"Authorization": "Bearer Ваш_user_API_ключ",
"accept": "application/json",
"Content-Type": "application/json"
},
json={
"model": "Compressa-LLM",
"messages": [
{
"role": "system",
"content": "You are an expert in soccer"
},
{
"role": "user",
"content": "Напиши сказку на ночь про добрый искусственный интеллект!"
}
],
"max_tokens": 512,
"temperature": 0.7,
"stream": True
}
)

for chunk in response.iter_content(chunk_size=None):
if chunk:
print(chunk.decode('utf-8'))

# Пример данных:
# data: {"id":"126","object":"chat.completion.chunk","created":1728680725,"model":"Compressa-LLM","choices":[{"index":0,"delta":{"role":"assistant","content":"В"},"logprobs":null,"finish_reason":null}],"usage":null}
# data: {"id":"126","object":"chat.completion.chunk","created":1728680725,"model":"Compressa-LLM","choices":[{"index":0,"delta":{"role":"assistant","content":" дав"},"logprobs":null,"finish_reason":null}],"usage":null}
# ...