Совместимость с OpenAI
GigaChat API предлагает удобную интеграцию с OpenAI SDK, позволяя разработчикам быстро адаптировать существующий код для работы с его моделями.
Для доступа ко всем возможностям GigaChat API рекомендуется применять специализированные библиотеки:
https://github.com/ai-forever/gigachat — библиотека для работы с GigaChat API на Python.
https://github.com/ai-forever/gigachat-js — библиотека для работы с GigaChat API на JavaScript.
https://github.com/ai-forever/langchain-gigachat — интеграция GigaChat с LangChain.
Примеры использования
Получение токена доступа для использования API:
payload = {
'scope': 'GIGACHAT_API_PERS'
}
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json',
'RqUID': '0efa2175-a953-4ccd-bf3d-ed967bbb208c',
'Authorization': 'Basic ' + '{auth_key}'
}
response = requests.request("POST", Config.auth_url, headers = headers, data = payload)
data = response.json()
access_token = data.get("access_token", "Unknown")
Работа с методами
- Chat Completions
- Функции
- Эмбеддинги
- Модели
Пример создания запроса:
from openai import OpenAI
client = OpenAI(api_key= "{token}",
base_url= "https://gigachat.devices.sberbank.ru/api/v1"
)
completion = client.chat.completions.create(
model="GigaChat",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{
"role": "user",
"content": "Hello World!"
}
]
)
print(completion.choices[0].message)
Пример работы с функциями с помощью модели GigaChat:
from openai
import OpenAI
functions = [{
"name": "get_weather",
"description": "Retrieve the current weather for a specified location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and country or region name."
},
"unit": {
"type": "string",
"enum": ["metric", "imperial"],
"description": "The unit system for temperature (metric or imperial)."
},
},
"required": ["location"],
},
}]
client = OpenAI(api_key = "{token}",
base_url = "https://gigachat.devices.sberbank.ru/api/v1"
)
completion = client.chat.completions.create(
model = "GigaChat",
messages = [{
"role": "user",
"content": "Какая погода в Москве?"
}],
functions = functions,
)
print(completion.choices[0].message)
Пример запроса на создание эмбеддинга:
from openai import OpenAI
client = OpenAI(api_key= "{token}",
base_url= "https://gigachat.devices.sberbank.ru/api/v1"
)
embeddings = client.embeddings.create(
model="EmbeddingsGigaR",
input="Hello World!"
)
print(embeddings.data[0].embedding)
Вызов модели GigaChat:
from openai import OpenAI
client = OpenAI(api_key= "{token}",
base_url= "https://gigachat.devices.sberbank.ru/api/v1"
)
model = client.models.retrieve("GigaChat")
print(model)
Получение списка моделей:
from openai import OpenAI
client = OpenAI(api_key= "{token}",
base_url= "https://gigachat.devices.sberbank.ru/api/v1"
)
models = client.models.list()
print(models.data)
Текущие ограничения
GigaChat API частично совместим с OpenAI API. Если вы еще не используете OpenAI SDK, рекомендуем сразу перейти на GigaChain SDK.