一些为 AI 提供打开 URL 的能力的 API,均设计为部署在 AWS Lambda 上的无服务器云函数。
目前包含 4 个 API:
browse-text
:用 headless Chromium 尝试打开网页,提取网页标题和显示的所有文字。github
:获取 GitHub 仓库的元信息和 README。pdf
:下载 PDF 并提取其中的文字。youtube
:获取 YouTube 视频标题、所属频道、描述、字幕。
安装并配置以下依赖:
- Serverless Framework
- Node.js
- Python 3.9
zip
,make
等基础工具
然后在项目根目录下执行 make
。运行结束后会输出各 API 的 URL。
每个 API 都应当使用 POST
方法调用,请求体类似如下格式:
{
"url": "https://example.com/"
}
每个 API 成功时都返回类似如下格式的 JSON。如果返回码不是 200,说明这个 API 无法打开指定的 URL。注意:某个 API 能打开某个 URL,并不意味着这个 API 是最佳选择。例如 browse-text
API 可以打开 YouTube 视频的 URL,但是 youtube
API 可能是更好的选择。
{
"truncated": false,
"template": [
{"field": "foo", "name": "Foo", "type": "inline"},
{"field": "bar", "name": "Bar", "type": "inline"},
{"field": "baz", "name": "Baz", "type": "block"},
{"field": "qux", "name": "Qux", "type": "block"}
],
"data": {
"foo": "some text",
"baz": "some text\nmore text",
"qux": "some text\nmore text"
}
}
其中 truncated
指示是否截断了部分数据以满足 AWS Lambda 的 6MB 返回值大小限制,template
列出了 data
中所有可能的字段,以及如何格式化以便提供给 AI 模型的建议。
用户可以忽略 template
部分,直接以 JSON 格式传递 data
给 AI 模型,也可以按 template
给出的建议,用类似如下格式拼接字符串:
Foo: some text
Baz:
some text
more text
Qux:
some text
more text