Совместимость с OpenAI
GigaChat API предлагает удобную интеграцию с OpenAI SDK, позволяя разработчикам быстро адаптировать существующий код для работы с его моделями.
Вы также можете перенаправлять OpenAI-запросы в GigaChat API с помощью утилиты gpt2giga.
Для доступа ко всем возможностям 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.
Использование OpenAI SDK
Для авторизации запросов в GigaChat API с помощью OpenAI SDK нужен токен доступа.
Примеры получения токена доступа с помощью ключа авторизации:
import requests
url = "https://ngw.devices.sberbank.ru:9443/api/v2/oauth"
payload = "scope=GIGACHAT_API_PERS"
headers = {
"Content-Type": "application/x-www-form-urlencoded",
"RqUID": "6f0b1291-c7f3-43c6-bb2e-9f3efb2dc98e",
"Authorization": "Bearer <ключ_авторизации>"
}
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
curl -L -X POST 'https://ngw.devices.sberbank.ru:9443/api/v2/oauth' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Accept: application/json' \
-H 'RqUID: 6f0b1291-c7f3-43c6-bb2e-9f3efb2dc98e' \
-H 'Authorization: Basic <ключ_авторизации>' \
--data-urlencode 'scope=GIGACHAT_API_PERS'
Токен доступа действует 30 минут.
Примеры
Пример создания запроса:
from openai import OpenAI
client = OpenAI(api_key= "<токен_доступа>",
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 = "<токен_доступа>",
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= "<токен_доступа>",
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= "<токен_доступа>",
base_url= "https://gigachat.devices.sberbank.ru/api/v1"
)
model = client.models.retrieve("GigaChat")
print(model)
Получение списка моделей:
from openai import OpenAI
client = OpenAI(api_key= "<токен_доступа>",
base_url= "https://gigachat.devices.sberbank.ru/api/v1"
)
models = client.models.list()
print(models.data)
Текущие ограничения
GigaChat API частично совместим с OpenAI API. Если вы еще не используете OpenAI SDK, рекомендуем сразу использовать библиотеки GigaChain.