Home 链接自动保存为Notes.md
Post
Cancel

链接自动保存为Notes.md

我一直想实现一个功能:

复制网址,一键总结并保存到备忘录📕

具体效果如下:

第一步:复制🔗链接

第二步:点击快捷指令-网页总结

然后总结后的文章自动出现在📕备忘录

实现方法

准备工作1:通过Jina Reader读取网页内容

这个我之前介绍过:如此“爬虫”?代码全省了

方法是在r.jina.ai后加网址,curl 用法如下,为取content方便,响应采用 JSON 格式

1
2
3
curl 'https://r.jina.ai/https://example.com' \
	-H "Accept: application/json" \
	-H "Authorization: Bearer jina_f6a1bafa163a4e18a2a2a47ac032b6edm3QgnduR2x93q5lSYLRBq-ZiOOUg"

备注:里面这个jina_ 开头的是JINA_API_KEY,你可以去https://jina.ai/reader/ 拷贝

它的返回结果是如下格式:

1
2
3
4
5
6
7
8
9
10
{
  "code": 200,
  "status": 20000,
  "data": {
    "title": "Example Domain",
    "url": "https://example.com/",
    "content": "This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.\n\n[More information...](https://www.iana.org/domains/example)"
  }
}

准备工作2:deepseek

这个不过多说了,昨天我的文章中第二次介绍了用法:全文翻译了吴恩达《如何打造AI职业生涯》PDF,附教程

Prompt 设计

1
2
3
4
5
6
7
8
9
"content": (
	"你是一个擅长总结长文本的助手,能够总结用户给出的文本,并生成摘要\n"
	"## 工作流程:\n"
	"让我们一步一步思考,阅读我提供的内容,并做出以下操作:\n"
	"标题:xxx\n"
	"标签:阅读文章内容后给文章打上标签,标签通常是领域、学科或专有名词\n"
	"一句话总结这篇文文章:xxx\n"
	"总结文章内容并写成摘要:xxx"
)

准备工作3:快捷指令设计

这部分也很简单:

1、读取粘贴板

2、运行脚本

3、将脚本运行结果保存到备忘录

工作工作4:环境准备

这里是个坑,快捷指令中的python环境是在/usr/bin/python3

正常方式安装requests包会报错如下:

正确姿势是Terminal中运行:

1
/usr/bin/python3 -m pip install requests

准备工作5:Python脚本开发

这里就不啰嗦了,直接放出完整代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import requests
import json

# API 密钥
JINA_API_KEY = "jina_"
DEEPSEEK_API_KEY = "sk-"

# 步骤 1: 获取网页内容

jinna_url = "https://r.jina.ai"
search_url = 'Clipboard'
headers = {
    'Accept': 'application/json',
    'Authorization': 'Bearer jina_f6a1bafa163a4e18a2a2a47ac032b6edm3QgnduR2x93q5lSYLRBq-ZiOOUg'
}
response = requests.get(f"{jinna_url}/{search_url}", headers=headers)

# 检查响应状态码
if response.status_code == 200:
    data = response.json()

    title = data['data']['title']
    content = data['data']['content']
    

# 步骤 3: 将内容传递给 DeepSeek API
deepseek_url = "https://api.deepseek.com/chat/completions"
deepseek_headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {DEEPSEEK_API_KEY}"
}
deepseek_data = {
    "model": "deepseek-chat",
    "messages": [
        {"role": "system", "content": "你是一个擅长总结长文本的助手,能够总结用户给出的文本,并生成摘要\n## 工作流程:\n让我们一步一步思考,阅读我提供的内容,并做出以下操作:\n 标题:xxx\n 标签:阅读文章内容后给文章打上标签,标签通常是领域、学科或专有名词\n 一句话总结这篇文文章:xxx\n 总结文章内容并写成摘要:xxx"},
        {"role": "user", "content": content}
    ],
    "stream": False
}

deepseek_response = requests.post(deepseek_url, headers=deepseek_headers, json=deepseek_data)

# 步骤 4: 从 DeepSeek API 的响应中提取摘要内容
try:
    summary = deepseek_response.json()['choices'][0]['message']['content']
    print(summary)
    print("\n")
    print(f"原文: {search_url}")
except Exception as e:
    print(f"处理 DeepSeek API 响应时出错:{e}")
    print(f"原始响应:{deepseek_response.text}")

粘贴到快捷指令中,注意下search_url那里:

以上

如有帮助,求个👍

This post is licensed under CC BY 4.0 by the author.