Thư viện Prompt DeepSeek – Hướng dẫn chi tiết
Tổng quan
DeepSeek cung cấp một thư viện prompt phong phú với nhiều danh mục khác nhau để hỗ trợ người dùng trong các tác vụ đa dạng.
Các danh mục prompt đã phát hiện:
1. 代码改写 (Code Refactoring)
- Mô tả: Đối với code hiện có, thực hiện việc sửa đổi, tối ưu hóa, chú thích, điều chỉnh, v.v.
2. 代码解释 (Code Explanation)
- Mô tả: Đối với code hiện có, thực hiện việc giải thích và hiểu rõ nội dung code.
3. 代码生成 (Code Generation)
- Mô tả: Cho phép tạo ra code hoàn chỉnh với các tính năng đặc định.
4. 内容分类 (Content Classification)
- Mô tả: Phân tích nội dung văn bản và thực hiện phân loại tự động.
5. 结构化输出 (Structured Output)
- Mô tả: Chuyển đổi nội dung thành định dạng Json để dễ dàng xử lý sau này.
6. 角色扮演 (Role Playing – Tự định nghĩa)
- Mô tả: Tự định nghĩa nhân vật, tương tác với người dùng để thực hiện vai trò đó.
7. 角色扮演 (Role Playing – Tình huống cụ thể)
- Mô tả: Cung cấp một tình huống, để mô hình mô phỏng tình huống đó để thực hiện nhiệm vụ đối thoại.
8. 散文写作 (Essay Writing)
- Mô tả: Cho phép tạo ra văn bản theo yêu cầu, sáng tác thơ văn.
9. 诗歌创作 (Poetry Creation)
- Mô tả: Cho phép tạo ra các loại thơ theo yêu cầu, sáng tác thơ ca.
10. 文案大纲生成 (Content Outline Generation)
- Mô tả: Dựa trên chủ đề người dùng cung cấp, tạo ra đại cương văn bản.
11. 宣传标语生成 (Slogan Generation)
- Mô tả: Cho phép tạo ra slogan quảng cáo hấp dẫn dựa trên thông tin sản phẩm.
12. 模型提示词生成 (Model Prompt Generation)
- Mô tả: Dựa trên yêu cầu người dùng, hỗ trợ tạo ra prompt chất lượng cao.
13. 中英翻译专家 (Chinese-English Translation Expert)
- Mô tả: Chuyên gia dịch thuật tiếng Trung, đối với nội dung người dùng nhập vào thực hiện dịch thuật.
Chi tiết Prompt 1: 代码改写 (Code Refactoring)
Mô tả chi tiết:
Đối với code hiện có, thực hiện việc sửa đổi, tối ưu hóa, chú thích, điều chỉnh, v.v.
Prompt Template:
下面是段的代码的效率很低,且没有处理边界情况,请先解释这段代码的问题与解决方法,然后进行优化:
def fib(n):
if n <= 2:
return n
return fib(n-1) + fib(n-2)
...
Ví dụ đầu ra:
### 问题分析
这段代码实现了一个递归的斐波那契数列算法 fib(n)
,虽然代码简洁,但它存在以下几个问题:
- 重复计算:递归调用会导致大量的重复计算,例如,计算
fib(5)
时,fib(3)
和fib(2)
会被多次计算,导致效率极低。 -
边界情况处理不完善:虽然代码处理了
n <= 2
的情况,但它没有处理n < 0
的情况,对于负输入,函数会返回不正确的结果。 -
递归深度限制:对于较大的
n
,递归深度可能会超过 Python 的默认递归深度限制,导致RecursionError
。
### 解决方法
- 优化记忆化 (Memoization):通过缓存已经计算过的斐波那契数列值,避免重复计算。
-
处理边界情况:增加对
n < 0
的检查,并返回适当的错误信息或默认值。 -
使用迭代替代递归:通过迭代的方法,避免过深的递归调用,减少栈溢出的风险,可以使用迭代方法计算斐波那契数列,避免递归深度限制。
### 优化后的代码
#### 方法一:记忆化递归
def fib(n, memo={}):
if n < 0:
raise ValueError("Input must be a non-negative integer")
if n <= 2:
return 1
if n in memo:
return memo[n]
memo[n] = fib(n-1, memo) + fib(n-2, memo)
return memo[n]
...
#### 方法二:迭代法
def fib(n):
if n < 0:
raise ValueError("Input must be a non-negative integer")
if n <= 2:
return 1
a, b = 1, 1
for _ in range(3, n+1):
a, b = b, a + b
return b
...
### 解释
- 记忆化递归:
– 使用一个字典 memo
来存储已经计算过的斐波那契数列值。
– 在每次调用时,先检查 memo
中是否已经有结果,如果有则直接返回。
– 处理了 n < 0
的情况,抛出 ValueError
。
- 迭代法:
– 使用两个变量 a
和 b
来存储前两个斐波那契数列值。
– 通过循环从 3
到 n
计算斐波那契数列,避免了递归调用。
– 同样处理了 n < 0
的情况,抛出 ValueError
。
### 总结
优化后的代码不仅提高了效率,还完善了对边界情况的处理。记忆化递归和迭代法都是有效的优化方法,具体选择哪种方法取决于具体需求和偏好。
Code sử dụng API:
from openai import OpenAI
client = OpenAI(
base_url="https://api.deepseek.com/",
api_key=""
)
completion = client.chat.completions.create(
model="deepseek-chat",
messages=[
{
"role": "user",
"content": "下面是段的代码的效率很低,且没有处理边界情况,请先解释这段代码的问题与解决方法,然后进行优化:\n\ndef fib(n):\n if n <= 2:\n return n\n return fib(n-1) + fib(n-2)\n"
}
]
)
Chi tiết Prompt 2: 代码解释 (Code Explanation)
Mô tả chi tiết:
Đối với code hiện có, thực hiện việc giải thích và hiểu rõ nội dung code.
Prompt Template:
请解释下面这段代码的逻辑,并说明完成了什么功能:
// weight数组的大小 就是物品个数
for(int i = 1; i < weight.size(); i++) { // 遍历物品
for(int j = 0; j <= bagweight; j++) { // 遍历背包容量
if (j < weight[i]) dp[i][j] = dp[i - 1][j];
else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);
}
}
Ví dụ đầu ra:
这段代码实现了一个经典的动态规划问题,通常用于解决”0/1背包问题”。下面是对代码逻辑的详细解释:
### 代码逻辑解释
- 初始化与遍历:
– weight
数组表示各个物品的重量。
– value
数组表示各个物品的价值。
– bagweight
表示背包的最大容量。
– dp
是一个二维数组,dp[i][j]
表示前 i
个物品在背包容量为 j
的情况下的最大价值。
- 外层循环:
for(int i = 1; i < weight.size(); i++) { // 遍历物品
- 外层循环从第1个物品开始遍历到最后一个物品(
weight.size()
)。
- 内层循环:
for(int j = 0; j <= bagweight; j++) { // 遍历背包容量
- 内层循环从背包容量为0开始遍历到背包的最大容量(
bagweight
)。
- 状态转移方程:
if (j < weight[i]) dp[i][j] = dp[i - 1][j];
else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);
- 如果当前背包容量
j
小于第i
个物品的重量weight[i]
,则无法放入该物品,状态保持不变,即dp[i][j] = dp[i - 1][j]
。 - 否则,可以选择放入或不放入第
i
个物品: - 不放入第
i
个物品时,最大价值为dp[i - 1][j]
。 - 放入第
i
个物品时,最大价值为dp[i - 1][j - weight[i]] + value[i]
,即在放入物品的最大价值基础上加上前物品的价值。 - 取两者的最大值,即
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i])
。
### 功能说明
这段代码的功能是计算在给定背包容量 bagweight
下,选择不同物品组合所能获得的最大价值。具体来说,它通过动态规划的方法,逐步构建一个二维数组 dp
,其中 dp[i][j]
表示前 i
个物品在背包容量为 j
的情况下的最大价值。最终,dp[weight.size() - 1][bagweight]
就是所求的最大价值。
### 总结
- 输入:
weight
数组(物品重量),value
数组(物品价值),bagweight
(背包容量)。 - 输出:在背包容量限制
bagweight
时,选择不同物品组合所能获得的最大价值。 - 算法:动态规划,通过构建二维数组
dp
来逐步计算最优解。
Chi tiết Prompt 3: 结构化输出 (Structured Output)
Mô tả chi tiết:
Chuyển đổi nội dung thành định dạng Json để dễ dàng xử lý sau này.
Prompt Template:
SYSTEM: 用户会提供给你一段新闻内容,请你分析新闻内容,并提取其中的关键信息。以 JSON 的形式输出,输出的 JSON 需要符合下列格式:
{
"entity": <新闻实体>,
"time": <新闻时间,格式为 YYYY-mm-dd HH:MM:SS,没有请填 null>,
"summary": <新闻简要总结>
}
USER: 8月31日,一枚俄罗斯导弹袭击乌克兰学校造成的问题造成3名43分外美国高等学生伤亡和其他比例危险分析,我21岁医生工程(Starlink)是入轨道,美国高,已经失败的苏联时间的问题造成43分,另一枚俄罗斯导弹袭击乌克兰人员伤亡问题造成的问题是关于实际发射分析,同样我21岁医生工程是卫星发射失入轨道,两次发射问题65分钟的问题9号运载火箭美国发射问题记录。
美国联邦航空管理局于8月30日表示,代表对太空探索技术公司的改进的在进行,但它允许其他的9号运载人箭美国发射,目前,双方开未达成8月28日问题美国技术和美国的连接设备,美国对其问题,但是计划进行太空太空的的"北极星黎明"(Polaris Dawn) 任务的延期。美国太空探索技术公司为让任务在轨的著者,等待美国联邦航空管理局的批准并准备代表进行发射。
Ví dụ đầu ra:
{
"entity": "俄罗斯导弹袭击乌克兰",
"time": "2023-08-31 03:43:00",
"summary": "8月31日,俄罗斯导弹袭击乌克兰次发射失败,将43岁美国卫星发射入轨道,创下了美国发射问题记录。尽管美国联邦航空管理局允许发射失败,但是计划的"北极星黎明"任务被推迟,等待批准进行。"
}
Ứng dụng:
- Trích xuất thông tin từ văn bản tin tức
- Chuẩn hóa dữ liệu thành định dạng JSON
- Phân tích và tóm tắt nội dung tự động
Hướng dẫn sử dụng Thư viện Prompt DeepSeek
Giới thiệu chung
Thư viện Prompt của DeepSeek là một bộ sưu tập các mẫu prompt được thiết kế sẵn để giúp người dùng tận dụng tối đa khả năng của mô hình AI DeepSeek. Các prompt này được phân loại theo chức năng và mục đích sử dụng cụ thể, giúp người dùng dễ dàng tìm kiếm và áp dụng vào công việc của mình.
Cách sử dụng
- Chọn danh mục phù hợp: Dựa vào nhu cầu của bạn, chọn danh mục prompt phù hợp từ 13 danh mục có sẵn.
-
Sao chép prompt template: Mỗi prompt đều có một template chuẩn mà bạn có thể sao chép và điều chỉnh.
-
Tùy chỉnh nội dung: Thay thế các phần placeholder trong template bằng nội dung cụ thể của bạn.
-
Sử dụng API: Sử dụng code mẫu được cung cấp để gọi API DeepSeek với prompt đã tùy chỉnh.
Lợi ích của việc sử dụng Prompt Library
- Tiết kiệm thời gian: Không cần phải tự viết prompt từ đầu
- Chất lượng đảm bảo: Các prompt đã được tối ưu hóa và kiểm thử
- Đa dạng ứng dụng: Phủ sóng nhiều lĩnh vực từ lập trình đến sáng tạo nội dung
- Dễ dàng tùy chỉnh: Template linh hoạt, có thể điều chỉnh theo nhu cầu cụ thể
Các danh mục prompt phổ biến
1. Lập trình (Programming)
- Code Refactoring: Tối ưu hóa và cải thiện code hiện có
- Code Explanation: Giải thích logic và chức năng của code
- Code Generation: Tạo ra code mới theo yêu cầu
2. Xử lý dữ liệu (Data Processing)
- Structured Output: Chuyển đổi dữ liệu thành định dạng JSON
- Content Classification: Phân loại nội dung tự động
3. Sáng tạo nội dung (Content Creation)
- Essay Writing: Viết bài luận và văn bản dài
- Poetry Creation: Sáng tác thơ ca
- Slogan Generation: Tạo slogan quảng cáo
4. Tương tác và vai trò (Interaction & Role-playing)
- Role Playing: Đóng vai nhân vật cụ thể
- Scenario Simulation: Mô phỏng tình huống thực tế
5. Hỗ trợ khác (Other Support)
- Translation: Dịch thuật chuyên nghiệp
- Content Outline: Tạo đề cương nội dung
- Model Prompt Generation: Tạo prompt cho các mô hình khác
Tips sử dụng hiệu quả
-
Đọc kỹ ví dụ: Mỗi prompt đều có ví dụ đầu ra để bạn hiểu rõ kết quả mong đợi.
-
Điều chỉnh theo ngữ cảnh: Tùy chỉnh prompt cho phù hợp với ngữ cảnh và yêu cầu cụ thể của bạn.
-
Kết hợp nhiều prompt: Có thể sử dụng kết hợp nhiều prompt để đạt được kết quả phức tạp hơn.
-
Thử nghiệm và tối ưu: Thử nghiệm với các biến thể khác nhau để tìm ra cách sử dụng tối ưu nhất.
Cấu trúc API cơ bản
Tất cả các prompt đều sử dụng cấu trúc API tương tự:
from openai import OpenAI
client = OpenAI(
base_url="https://api.deepseek.com/",
api_key=""
)
completion = client.chat.completions.create(
model="deepseek-chat",
messages=[
{
"role": "system", # Tùy chọn: hướng dẫn hệ thống
"content": "System prompt here"
},
{
"role": "user",
"content": "Your prompt content here"
}
]
)
print(completion.choices[0].message.content)
Kết luận
Thư viện Prompt của DeepSeek là một công cụ mạnh mẽ giúp người dùng khai thác tối đa tiềm năng của AI. Bằng cách sử dụng các prompt được thiết kế sẵn, bạn có thể nhanh chóng đạt được kết quả chất lượng cao trong nhiều lĩnh vực khác nhau. Hãy thử nghiệm và khám phá các prompt phù hợp với nhu cầu của bạn!