Lego AI Parser简介
Lego AI Parser是一款强大而灵活的开源HTML文本解析工具,它充分利用了OpenAI的自然语言处理能力,可以准确解析HTML元素中的可见文本内容。该项目由SerpApi开发并在GitHub上开源,为开发者提供了一种便捷的方式来处理和分析网页中的文本数据。
Lego AI Parser基于FastAPI构建,可以轻松部署为服务器,并支持从任何编程语言进行调用。它的设计理念是简单易用,同时又具有强大的扩展性,能够满足各种复杂的文本解析需求。
主要功能特点
Lego AI Parser具有以下几个突出的功能特点:
-
预设解析器: 内置了多个常用网站的预设解析器,如Google本地搜索结果、Amazon商品列表、Etsy商品列表等,可以直接使用。
-
自定义解析器: 允许用户根据自己的需求设计和使用自定义解析器,灵活性极高。
-
批量处理: 支持同时处理多个HTML元素,提高解析效率。
-
服务器端调用: 提供了不暴露API密钥的服务器端调用方式,保护用户隐私和安全。
-
OpenAI集成: 充分利用OpenAI的强大自然语言处理能力,实现精准的文本解析。
-
开源免费: 在GitHub上完全开源,可以自由使用和修改。
使用方法
基本用法
使用Lego AI Parser的基本步骤如下:
- 复制需要解析的HTML元素的外部HTML代码。
- 准备OpenAI API密钥。(需要在OpenAI官网注册账号并获取API密钥)
- 向Lego AI Parser的API端点发送POST请求,包含HTML代码和API密钥。
以下是一个简单的Python示例代码:
import requests
uri = "https://yourserver.com/classify"
headers = {"Content-Type": "application/json"}
data = {
"path": "google.google_local_results",
"targets": [
"<div>Your HTML code here</div>"
],
"openai_key": "<YOUR_OPENAI_API_KEY>"
}
r = requests.post(url=uri, headers=headers, json=data)
print(r.json()["results"])
处理多个元素
Lego AI Parser支持同时处理多个HTML元素或纯文本。只需在targets
列表中添加多个元素即可:
data = {
"path": "google.google_local_results",
"targets": [
"Element 1 text or HTML",
"<div>Element 2 HTML</div>",
"Element 3 text or HTML"
],
"openai_key": "<YOUR_OPENAI_API_KEY>"
}
系统会自动处理所有元素,并返回按顺序排列的结果。
自定义解析器
Lego AI Parser的一大特色是允许用户设计自定义解析器。这为处理特定网站或特殊格式的数据提供了极大的灵活性。
设计自定义解析器需要提供以下信息:
main_prompt
: 指导模型如何分类每个项目的提示。data
: 使用的OpenAI模型详细信息。model_specific_token_size
: 模型允许的最大令牌数。openai_endpoint
: 调用模型的OpenAI端点。explicitly_excluded_strings
: 需要从结果中排除的字符串列表。examples_for_prompt
: 示例文本及其分类结果,用于训练模型。
以下是一个自定义解析器的示例:
"classifier": {
"main_prompt": "A table with NUMBER_OF_LABELS cells in each row summarizing the different parts of the text at each line even if they are not unique:\n\n",
"data": {
"model": "text-davinci-003",
"temperature": 0.001,
"top_p": 0.9,
"best_of": 2,
"frequency_penalty": 0,
"presence_penalty": 0
},
"model_specific_token_size": 3800,
"openai_endpoint": "https://api.openai.com/v1/completions",
"explicitly_excluded_strings": [
"Order",
"Website",
"Directions",
"\n"
],
"examples_for_prompt": [
{
"text": "Example text here",
"classifications": {
"label_1": "Value 1",
"label_2": "Value 2"
}
}
]
}
通过自定义解析器,用户可以根据自己的需求精确控制解析过程和结果格式。
服务器端调用
为了保护API密钥的安全,Lego AI Parser提供了服务器端调用的方式。主要有三种调用方式:
-
仅获取提示: 通过设置
prompts_only=True
,可以只获取需要发送给OpenAI的提示,而不执行实际的API调用。 -
服务器端OpenAI调用: 在服务器端完成OpenAI API的调用,客户端无需直接接触API密钥。
-
仅解析调用: 如果已经有了OpenAI的响应结果,可以只调用解析功能,快速得到最终结果。
这些方法为开发者提供了更多的灵活性和安全性,特别适合在生产环境中使用。
项目贡献
Lego AI Parser是一个活跃的开源项目,欢迎社区成员参与贡献。主要的贡献方式包括:
- 添加新的预设解析器
- 改进现有功能
- 修复bug
- 完善文档
- 编写单元测试
贡献者可以通过GitHub的Pull Request机制提交自己的代码。项目维护者会认真审核每一个贡献,并给予反馈。
总结
Lego AI Parser为HTML文本解析提供了一个强大而灵活的解决方案。通过结合OpenAI的自然语言处理能力和灵活的自定义选项,它可以满足各种复杂的文本解析需求。无论是用于数据分析、内容抓取还是自动化测试,Lego AI Parser都是一个值得考虑的工具。
随着项目的不断发展和社区的积极参与,我们可以期待Lego AI Parser在未来会变得更加强大和易用。对于有兴趣深入了解或参与项目开发的读者,建议访问Lego AI Parser的GitHub仓库以获取最新信息和详细文档。
通过使用Lego AI Parser,开发者可以大大简化HTML文本解析的工作,将更多精力集中在数据的应用和分析上,从而提高工作效率,创造更大的价值。🚀💡