AI Agent数据接入:让Agent读取你的各种数据源

📘 教程 2026-07-19 约 3 分钟阅读

公司的数据散落在各种地方——数据库、Excel、API、PDF。怎么接入?

💡 你将学到

公司的数据散落在各种地方——数据库、Excel、API、PDF。怎么接入?

📜 目录

数据接入:从混乱到有序的四层架构

第一层:数据源连接

from langchain_community.document_loaders import (
    TextLoader, PyPDFLoader, CSVLoader, WebBaseLoader
)

def load_documents(source_type: str, source_path: str):
    """统一的文档加载入口"""
    loaders = {
        'txt': TextLoader(source_path, encoding='utf-8'),
        'pdf': PyPDFLoader(source_path),
        'csv': CSVLoader(source_path),
        'web': WebBaseLoader(source_path),
    }
    loader = loaders.get(source_type)
    if not loader:
        raise ValueError(f"不支持的数据源类型: {source_type}")
    return loader.load()

第二层:文本分块策略对比

策略 块大小 重叠 适用场景 召回率
固定长度 512 tokens 64 通用文档 78%
语义分块 动态 自适应 FAQ/问答 92%
递归字符分割 1000 chars 200 代码/结构化文本 85%
Markdown标题分割 按章节 0 长文档 88%

推荐策略:用递归字符分割作为默认方案,对准确率要求高的场景切换到语义分块

第三层:向量化存储

from langchain_chroma import Chroma
from langchain_huggingface import HuggingFaceEmbeddings

# 中文向量模型(免费、离线可用)
embeddings = HuggingFaceEmbeddings(
    model_name="BAAI/bge-large-zh-v1.5",
    model_kwargs={'device': 'cpu'},
    encode_kwargs={'normalize_embeddings': True}
)

# 创建向量库
vector_store = Chroma.from_documents(
    documents=chunks,
    embedding=embeddings,
    persist_directory="./chroma_db"
)

# 检索测试
results = vector_store.similarity_search_with_score("退货流程是什么?", k=3)
for doc, score in results:
    print(f"相关度: {score:.4f} | 内容: {doc.page_content[:100]}")

第四层:AI Agent检索

def rag_query(query: str, k: int = 3) -> str:
    """RAG检索+生成"""
    docs = vector_store.similarity_search(query, k=k)
    context = "\n---\n".join([d.page_content for d in docs])

    prompt = f"""基于以下资料回答问题。如果资料中没有相关信息,请明确说"找不到相关信息,请补充资料"。

资料:
{context}

问题:{query}
回答:"""
    return llm.invoke(prompt)

实施步骤

第一步:盘点现有数据源,分类(数据库/文档/API/网页)。

第二步:对所有文档建立统一目录索引,打上标签(部门/类型/更新时间)。

第三步:部署向量数据库(推荐Chroma,零配置入门),嵌入bge-large-zh-v1.5。

第四步:写Python脚本定时同步(新文档入库、过期文档标记),设置每日增量更新cron。

第五步:上线RAG功能后持续监控——记录"未找到"率,如果>10%说明知识库覆盖不足,需补充资料。

相关文章

相关文章
2026-08-13
Whisper 本地转写 2026:不依赖云端的开源语音转文字
2026-07-16
AI Agent实时通信:用WebSocket让Agent实时推送通知
2026-07-17
AI Agent日志轮转:日志太大怎么自动切割

本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。

💬 评论 (0)

暂无评论,来说两句吧~

登录后评论