Engee 文档
Notebook

在Engee中使用DeepSeek-R1

在这个例子中,我们将看到创建和发送请求的过程,以及通过第三方Python API输出对DeepSeek-R1大型语言模型(LLM)的Engee的响应。

导言

DeepSeek-R1是近年来所有DeepSeek LLMs中最相关和耸人听闻的模型。 有几种方法可以免费和付费使用这种模式访问聊天。 在我们的例子中,我们将考虑最简单和最自由的访问方法。

我们将发送JSON请求到一个开放的LLM访问服务-<https://openrouter.ai />。 这是将语言模型集成到用户应用程序中的可能方法之一。

网站[openrouter.ai ](http://openrouter.ai )用作访问与LLM聊天的API的示例。 我们警告您有关付费服务的可用性,并建议您使用专家的帮助来执行类似的工作。 此外,我们声明此示例不作为所使用服务的广告。

开始行动

首先,让我们检查库是否已安装。 requests 蟒蛇。 它允许您处理HTTP请求。 下面的代码可以例如在单元格中执行。ipynb文件:

!pip install requests

之后,我们将安装并连接库。 PyCall.jl 要使用[Python In Julia]中的代码(https://engee.com/helpcenter/stable/ru/julia/PyCall/readme.html )。

In [ ]:
Pkg.add("PyCall")     # Установка библиотеки
   Resolving package versions...
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`
In [ ]:
using PyCall    # Подключение библиотеки

现在让我们连接图书馆 requests:

In [ ]:
py"""
import requests
"""

工作的准备工作已经完成,您可以继续形成请求。

形成请求

使用Openrouter API访问页面创建变量(API_URL)和自定义密钥(API_KEY). 下面输入的密钥仅在当前示例中使用,目前已禁用。 如有必要,请输入您的API密钥。

In [ ]:
py"""
API_KEY = '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'
API_URL = 'https://openrouter.ai/api/v1/chat/completions'
"""

接下来,我们将定义API请求的标头。:

In [ ]:
py"""
headers = {
    'Authorization': f'Bearer {API_KEY}',
    'Content-Type': 'application/json'
}
"""

以JSON格式定义请求的数据:

In [ ]:
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。:

In [ ]:
py"""
response = requests.post(API_URL, json=data, headers=headers)   # Отправляем POST-запрос
"""

我们将检查请求的成功并打印必要的数据。

In [ ]:
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)      # Печать сообщения об ошибке
"""
```julia
println("Hello World!")
```

**Объяснение:**
1. `println` — это функция в Julia, которая выводит переданные аргументы в консоль и добавляет переход на новую строку.
2. Строка `"Hello World!"` передается в функцию `println` для вывода.
3. Программа выведет в консоль текст: `Hello World!`.

如果请求被成功处理,就像上面的情况一样,我们会收到来自神经网络的响应。 由于DeepSeek的响应在Markdown中标记,我们可以将其保存到具有适当扩展名的文件中,以便清晰。

In [ ]:
try
    write("Py_LLM.md", py"output['message']['content']");
catch err;
    println("Введите актуальный API_KEY");
end

代码屏蔽

Engee在处理脚本时无可争议的便利在于[屏蔽代码代码]的可能性。 ячеек](https://engee.com/helpcenter/stable/ru/interactive-scripts/language_basics/code_cell_masks.html)。因此,我们可以轻松地创建最小必要的GUI来处理编写的应用程序。:

In [ ]:
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)
"""
42. Но смысл в поиске своего пути.

结论

在这个例子中,我们考虑了一个相当简单的方法,将聊天与Engee脚本中的DeepSeek-R1神经网络连接起来。 该程序是用Python实现的,它的工作是使用第三方服务的API生成JSON格式的请求。 此外,还显示了对Markdown文件的接收响应的输出以及用于在Engee脚本中创建GUI程序的代码单元格的屏蔽。