LLM
Платформа Compressa включает в себя готовый модуль для быстрого и выгодного инференса open-source LLM моделей на вашем сервере. Мы уже применили лучшие техники оптимизации на уровне инфраструктуры, чтобы вы экономили на расходах и улучшали опыт пользователей.
В рамках облачной версии мы даем тестовое API для одной из актуальных open-source моделей (например, Qwen или Llama), но с ограничениями по нагруз ке.
Вы можете взаимодействовать с LLM через нашу Python библиотеку для Langchain или через прямой cURL запрос.
Кроме этого, наши API совместимы с OpenAI, подробнее на отдельной странице.
Вызов модели без стриминга
- Python (Langchain)
- cURL
#pip install langchain-compressa - если у вас еще нет этого пакета
#pip install langchain-core - если у вас еще нет этого пакета
#pip install langchain - если у вас еще нет этого пакета
from langchain_compressa import ChatCompressa
llm = ChatCompressa(
base_url="https://compressa-api.mil-team.ru/v1", #при локальном запуске замените на ваш url, например http://localhost:8080/api/v1/chat/completions
api_key="Ваш_API_ключ_Compressa", #при локальном запуске вы можете не требовать ключ или создать свой
temperature=0.7,
max_tokens=150,
stream="false"
)
messages = [
("system", "Ты полезный помощник, который переводит с русского на английский. Переведи предложение пользователя."),
("human", "Я люблю программирование.")
]
ai_msg = llm.invoke(messages)
print(f"Ответ модели: {ai_msg.content}")
# Ответ модели: I love programming.
# при локальном запуске замените на ваш url, например http://localhost:8080/api/v1/chat/completions
# при локальном запуске вы можете не требовать API ключ или создать свой
curl -X 'POST' \
'https://compressa-api.mil-team.ru/v1/chat/completions' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer Ваш_API_ключ_Compressa' \
-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="https://compressa-api.mil-team.ru/v1", #при локальном запуске замените на ваш url, например http://localhost:8080/api/v1/chat/completions
api_key="Ваш_API_ключ_Compressa", #при локальном з апуске вы можете не требовать ключ или создать свой
temperature=0.7,
max_tokens=150,
stream="false"
)
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="https://compressa-api.mil-team.ru/v1/chat/completions", #при локальном запуске замените на ваш url, например http://localhost:8080/api/v1/chat/completions
headers={
"Authorization": "Bearer Ваш_API_ключ_Compressa", #при локальном запуске вы можете не требовать ключ или со здать свой
"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}
# ...
# при локальном запуске замените на ваш url, например http://localhost:8080/api/v1/chat/completions
# при локальном запуске вы можете не требовать API ключ или создать свой
curl -X 'POST' \
'https://compressa-api.mil-team.ru/v1/chat/completions' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer Ваш_API_ключ_Compressa' \
-d '{
"model": "Compressa-LLM",
"messages": [
{"role": "user", "content": "Напиши сказку на ночь про добрый искусственный интеллект!"}
],
"max_tokens": 512,
"temperature": 0.7,
"stream": True
}'