UI интерфейс
URL: http://ваш_адрес:8080/chat/
UI Playground для тестирования разных настроек LLM и подбора промптов. Не забудьте указать user токен в специальном поле. Также в интерфейсе можно переключить разные LoRA адаптеры к одной модели, если вы провели их деплой.
API интерфейс
Вы можете взаимодействовать с LLM можно через нашу Python библиотеку Compressa для Langchain или через прямой cURL запрос.
Кроме этого, наши API совместимы с OpenAI, подробнее на отдельной странице.
примечание
При изнача льной установке в Compressa LLM используется модель "Compressa-LLM". Если вы заменили LLM модель, в примерах ниже необходимо указать ваше название модели.
Вызов модели без стриминга
- Python (Langchain)
- cURL
#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.
curl -X POST \
'http://ваш_а дрес:8080/v1/chat/completions' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer Ваш_user_API_ключ' \
-d '{
"model": "Compressa-LLM",
"messages": [
{
"role": "system",
"content": "Ты полезный помощник, который переводит с русского на английский. Переведи предложение пользователя."
},
{
"role": "user",
"content": "Я люблю программирование."
}
],
"max_tokens": 128,
"temperature": 0.5,
"stream": false
}'
Также приведем пример использования 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.
Вызов модели с опцией стриминга ответа
- Python (requests)
- cURL
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}
# ...
curl -X POST \
'http://ваш_адрес:8080/v1/chat/completions' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer Ваш_user_API_ключ' \
-d '{
"model": "Compressa-LLM",
"messages": [
{
"role": "user",
"content": "Напиши сказку на ночь про добрый искусственный интеллект!"
}
],
"max_tokens": 512,
"temperature": 0.7,
"stream": true
}'