Общаемся с DeepSeek-R1 в Engee
Использование DeepSeek-R1 в Engee¶
В этом примере мы рассмотрим процесс создания и отправки запросов, а также вывода ответов в Engee для большой языковой модели (LLM) DeepSeek-R1 через API стороннего сервиса на языке Python.
Введение¶
DeepSeek-R1 - наиболее актуальная и нашумевшая в последнее время модель из всех LLM компании DeepSeek. Существует несколько способов бесплатного и платного доступа к чату с этой моделью, в нашем примере мы рассмотрим наиболее простой и бесплатный способ доступа.
Мы будем отправлять JSON запросы к открытому сервису доступа к LLM - https://openrouter.ai/. Это один из возможных способов интеграции языковых моделей в пользовательские приложения.
Сайт openrouter.ai используется для примера API доступа к чату с LLM. Мы предупреждаем Вас о наличии на нём платных сервисов и рекомендуем воспользоваться помощью специалистов для выполнения аналогичной работы. Кроме этого мы заявляем, что данный пример не служит рекламой используемого сервиса.
Начало работы¶
Для начала проверим, установлена ли библиотека requests
Python.
Она позволяет работать с HTTP-запросами.
Следующий код можно выполнить, например, в ячейке файла .ipynb:
!pip install requests
После этого установим и подключим библиотеку PyCall.jl
для работы с кодом на Python в Julia.
]add PyCall # Установка библиотеки
using PyCall # Подключение библиотеки
Теперь подключим библиотеку requests
:
py"""
import requests
"""
Подготовка к работе проведена, можно перейти к формированию запроса.
Формируем запрос¶
Создадим переменные со страницей доступа к API Openrouter (API_URL
)
и пользовательским ключом (API_KEY
). Введённый ниже ключ используется
исключительно в текущем примере и на данный момент отключен для использования.
При необходимости, впишите свой API-ключ.
py"""
API_KEY = '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'
API_URL = 'https://openrouter.ai/api/v1/chat/completions'
"""
Далее определим заголовки API-запроса:
py"""
headers = {
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
}
"""
Определим данные для запроса в формате JSON:
py"""
data = {
"model": "deepseek/deepseek-r1:free",
"messages": [{"role": "user", "content": "Напиши программу Hello World! на Julia"}]
}
"""
Здесь: deepseek/deepseek-r1:free
- это бесплатная модель DeepSeek-R1,
доступная для чата через OpenRouter.
В поле messages
для роли пользователя ("role": "user"
)
определяется текстовый запрос content
.
Получаем и выводим ответ¶
Отправим сформированный POST-запрос в OpenRouter:
py"""
response = requests.post(API_URL, json=data, headers=headers) # Отправляем POST-запрос
"""
Проверим успешность запроса и выведем в печать необходимые данные.
py"""
if response.status_code == 200: # если код ответа "200", то:
for content in response.json()['choices']: # из поля "choices" ответа
output = content # получаем содержимое "content"
print(output['message']['content']) # а из этого содержимого печатаем "content" поля "messages"
else: # иначе:
print("Failed to fetch data from API. Status Code:", response.status_code) # Печать сообщения об ошибке
"""
В случае успешной обработки запроса, как в случае выше,
мы получаем ответ от нейросети.
Так как ответ DeepSeek размечен в Markdown, то для наглядности
мы можем сохранить его в файл с соответствующим расширением.
write("Py_LLM.md", py"output['message']['content']");
Маскирование кода¶
Неоспоримое удобство Engee при работе со скриптами заключается в возможности маскирования кодовых ячеек. Так, мы можем легко создать минимально необходимый GUI для работы с написанным приложением:
py"""
# Define the request payload (data)
Вопрос = "Ответь максимально коротко на вопрос о жизни, вселенной и вообще" # @param {type:"string"}
data = {
"model": "deepseek/deepseek-r1:free",
"messages": [{"role": "user", "content": str(Вопрос)}]
}
# Send the POST request to the DeepSeek API
response = requests.post(API_URL, json=data, headers=headers)
# Check if the request was successful
if response.status_code == 200:
for content in response.json()['choices']:
output = content
print(output['message']['content'])
else:
print("Failed to fetch data from API. Status Code:", response.status_code)
"""
$$\blacksquare$$
Заключение¶
В примере мы рассмотрели достаточно простой подход для подключения чата с нейросетью DeepSeek-R1 в скрипте Engee. Программа реализована на языке Python, её работа заключается в формировании запроса в формате JSON по API стороннего сервиса. В дополнение показаны вывод полученного ответа в файл Markdown и маскирование кодовой ячейки для создания GUI программы в скрипте Engee.