Engee 文档
Notebook

在 Engee 中使用 DeepSeek-R1

在本例中,我们将了解创建和发送查询的过程、 并向Engee输出响应的过程。 DeepSeek-R1 通过第三方 Python 服务的 API 输出响应的过程。

简介

DeepSeek-R1是近期所有DeepSeek LLM中最相关、最受关注的型号。 有几种免费和付费的聊天方式、 在我们的例子中,我们将考虑最简单的免费访问方式。

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

我们使用 openrouter.ai 网站作为 LLM 聊天访问 API 的示例。 我们提醒您注意该网站上存在付费服务,并且 我们建议您使用专家的帮助 执行类似工作。此外,我们声明 本示例并非所使用服务的广告。

开始使用

首先,检查是否安装了requests Python 库。 通过它可以处理 HTTP 请求。 例如,可以在 .ipynb 文件的单元格中执行以下代码:

!pip install requests

之后,我们将安装并连接库PyCall.jl 以使用 Python in Julia 中的代码。

In [ ]:
]add PyCall     # Установка библиотеки
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)      # Печать сообщения об ошибке
"""
Для написания программы "Hello World!" на языке Julia достаточно использовать встроенную функцию `println`, которая выводит текст с переводом строки. Вот пример кода:

```julia
println("Hello World!")
```

**Объяснение:**
- `println` — функция, выводящая переданные аргументы в консоль, добавляя символ новой строки.
- Строковые литералы заключаются в двойные кавычки (`"..."`).

**Как запустить:**
1. Сохраните код в файл с расширением `.jl` (например, `hello.jl`).
2. Запустите в терминале: `julia hello.jl`.

Это минимальный пример, демонстрирующий базовый вывод в Julia. Для более сложных программ код можно организовать в функции и модули.

如果请求处理成功,如上文所述、 我们会收到来自神经网络的响应。
为了清晰起见,DeepSeek 的响应是用 Markdown 标记的。 我们可以将其保存到具有相应扩展名的文件中。

In [ ]:
write("Py_LLM.md", py"output['message']['content']");

代码屏蔽

在处理脚本时,Engee 无可否认的便利之处是能够 屏蔽代码单元]1 的功能。因此,我们可以轻松创建 因此,我们可以很容易地创建最低限度的必要图形用户界面,以使用编写的应用程序:

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.

**$$\blacksquare$***

结论

在本示例中,我们考虑了一种相当简单的方法,即在 Engee 脚本中将聊天与 DeepSeek-R1 神经网络 在 Engee 脚本中将聊天与 DeepSeek-R1 神经网络连接起来的简单方法。 该程序用 Python 实现,其工作包括 通过第三方服务的 API 生成 JSON 格式的请求。 此外,它还将接收到的响应输出显示到 Markdown 文件中,并 屏蔽代码单元,在 Engee 脚本中创建图形用户界面程序。 Engee。