终极指南:如何在Scrapegraph-ai中集成企业私有大语言模型实现LLM自定义配置

【免费下载链接】Scrapegraph-ai Python scraper based on AI 【免费下载链接】Scrapegraph-ai 项目地址: https://gitcode.com/GitHub_Trending/sc/Scrapegraph-ai

Scrapegraph-ai是一个基于AI的Python网页抓取库,它利用LLM和直接图逻辑创建抓取管道。本指南将详细介绍如何在Scrapegraph-ai中集成企业私有大语言模型,实现LLM的自定义配置,让你的网页抓取能力更上一层楼。

Scrapegraph-ai的项目架构概览

Scrapegraph-ai的整体架构设计为一个灵活的节点-图-模型三层结构,这种设计为集成自定义LLM提供了坚实的基础。

Scrapegraph-ai项目架构图

从架构图中可以看到,最上层是各种节点类型(Node Types),包括ConditionalNode、FetchNode、ParseNode等。中间层是图(Graphs),如SmartScraperGraph、SearchGraph等,这些图由节点组成,负责执行具体的抓取任务。最下层是模型(Models),包括Gemini、OpenAI、Llama等多种LLM模型,图执行的结果会传递给模型进行处理,最终生成答案。

LLM集成的核心实现

Scrapegraph-ai中LLM集成的核心代码位于scrapegraphai/graphs/abstract_graph.py文件中,特别是其中的_create_llm方法。这个方法负责根据配置创建语言模型实例,是实现自定义LLM集成的关键。

支持的LLM提供商

Scrapegraph-ai已经内置支持多种LLM提供商,包括:

  • OpenAI
  • Azure OpenAI
  • Google GenAI
  • Ollama
  • OneApi
  • Nvidia
  • Groq
  • Anthropic
  • Bedrock
  • MistralAI
  • Hugging Face
  • DeepSeek
  • Ernie
  • Fireworks
  • CLoD
  • TogetherAI
  • XAI
  • MiniMax

这些提供商的支持代码可以在scrapegraphai/models/目录下找到,例如clod.pydeepseek.pyminimax.py等文件。

集成企业私有LLM的步骤

1. 准备工作

在集成企业私有LLM之前,确保你已经:

  • 安装了Scrapegraph-ai库
  • 拥有企业私有LLM的访问权限和API密钥
  • 了解私有LLM的API接口规范

2. 配置LLM参数

Scrapegraph-ai使用配置字典来设置LLM参数。对于企业私有LLM,你需要在配置中指定模型提供商、模型名称、API密钥等信息。

基本的LLM配置格式如下:

config = {
    "llm": {
        "model_provider": "your_private_provider",
        "model": "your_private_model_name",
        "api_key": "your_private_api_key",
        # 其他参数...
    }
}

3. 创建自定义LLM类

如果你的企业私有LLM不在Scrapegraph-ai的内置支持列表中,你需要创建一个自定义的LLM类。可以参考scrapegraphai/models/目录下的现有模型类,如CLoDDeepSeek等。

一个基本的自定义LLM类可能如下所示:

from langchain_core.chat_models import BaseChatModel

class PrivateLLM(BaseChatModel):
    # 实现必要的方法和属性
    pass

4. 集成自定义LLM到Scrapegraph-ai

将自定义LLM类集成到Scrapegraph-ai中,需要修改abstract_graph.py文件中的_create_llm方法,添加对新模型提供商的支持。

或者,更简单的方法是直接将模型实例传递给配置:

private_llm = PrivateLLM(api_key="your_api_key", ...)
config = {
    "llm": {
        "model_instance": private_llm,
        "model_tokens": 8192  # 根据你的模型设置适当的token数量
    }
}

5. 使用自定义LLM进行网页抓取

创建一个图实例(如SmartScraperGraph),并传入包含自定义LLM配置的config参数:

from scrapegraphai.graphs import SmartScraperGraph

graph = SmartScraperGraph(
    prompt="Extract information about the latest AI trends",
    source="https://example.com/ai-trends",
    config=config
)

result = graph.run()
print(result)

不同类型图的LLM集成示例

SmartScraperGraph

SmartScraperGraph是Scrapegraph-ai中常用的图之一,它的工作流程包括Fetch、Parse、RAG和Generate Answer四个节点。

SmartScraperGraph工作流程图

使用自定义LLM配置SmartScraperGraph的示例代码:

config = {
    "llm": {
        "model_provider": "your_private_provider",
        "model": "your_private_model",
        "api_key": "your_api_key",
        "temperature": 0.7
    },
    "verbose": True
}

graph = SmartScraperGraph(
    prompt="Extract product information",
    source="https://example.com/products",
    config=config
)

OmniScraperGraph

OmniScraperGraph在SmartScraperGraph的基础上增加了ImageToText节点,能够处理包含图片的网页。

OmniScraperGraph工作流程图

集成自定义LLM到OmniScraperGraph的示例:

from scrapegraphai.graphs import OmniScraperGraph

config = {
    "llm": {
        "model_instance": your_private_llm_instance,
        "model_tokens": 10000
    }
}

graph = OmniScraperGraph(
    prompt="Extract information including images",
    source="https://example.com/with-images",
    config=config
)

高级配置和优化

1. 速率限制

为了避免过度请求企业私有LLM,可以设置速率限制:

config = {
    "llm": {
        "model_provider": "your_private_provider",
        "model": "your_private_model",
        "api_key": "your_api_key",
        "rate_limit": {
            "requests_per_second": 5,
            "max_retries": 3
        }
    }
}

2. 缓存配置

启用缓存可以减少对LLM的重复请求,提高效率并降低成本:

config = {
    "llm": {
        "model_provider": "your_private_provider",
        "model": "your_private_model",
        "api_key": "your_api_key"
    },
    "cache_path": "./llm_cache"
}

3. 超时设置

设置适当的超时时间,确保在LLM响应缓慢时能够及时处理:

config = {
    "llm": {
        "model_provider": "your_private_provider",
        "model": "your_private_model",
        "api_key": "your_api_key"
    },
    "timeout": 300  # 5分钟
}

总结

通过本文介绍的方法,你可以轻松地在Scrapegraph-ai中集成企业私有大语言模型,实现LLM的自定义配置。这不仅可以保护企业的敏感数据,还能充分利用私有模型的优势,提升网页抓取的效率和准确性。

无论你是需要处理复杂的网页结构,还是需要从包含图片的页面中提取信息,Scrapegraph-ai的灵活架构和强大的LLM集成能力都能满足你的需求。开始尝试集成你企业的私有LLM,解锁更强大的网页抓取功能吧!

如果你想了解更多关于Scrapegraph-ai的信息,可以参考项目的官方文档和源代码:

要开始使用Scrapegraph-ai,只需克隆仓库:

git clone https://gitcode.com/GitHub_Trending/sc/Scrapegraph-ai

然后按照文档中的说明进行安装和配置,即可开始你的AI驱动的网页抓取之旅!

【免费下载链接】Scrapegraph-ai Python scraper based on AI 【免费下载链接】Scrapegraph-ai 项目地址: https://gitcode.com/GitHub_Trending/sc/Scrapegraph-ai

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐