免费POC,零成本试错

AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


大模型RAG实战|基于ThinkDoc文档解析与融合检索能力,提升RAG效果

发布日期:2025-08-13 08:22:16 浏览次数: 1525
作者:大卫数智话

微信搜一搜,关注“大卫数智话”

推荐语

ThinkDoc智能知识库助力个人与开发者高效管理文档,通过智能对话与专业写作提升工作效率,还能集成到企业级RAG应用中。

核心内容:
1. 创建知识库的详细步骤与四种资料添加方式
2. 深度解析与快速解析两种文档处理模式的特点
3. 如何将ThinkDoc集成到RAG应用中提升效果

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

最近ThinkDoc智能知识库上线了。


个人与开发者都可以用。


对于个人,作为知识工作者或专业人士,我们可以把 ThinkDoc 作为自己的个人知识库。


在上传文档资料之后,我们可以通过智能对话、检索分析和专业写作等智能体直接交互,提升个人的工作效率。


对于开发者,我们可以把 ThinkDoc 作为团队或企业的知识库平台。


通过 ThinkDoc 丰富的 API 接口,调用强大的文档上传、解析、检索能力,然后与我们开发的RAG应用集成,提升企业级RAG应用的效果。 


本文,我将给大家具体的操作指南。


 1 

创建第一个知识库


在使用ThinkDoc进行文档解析之前,首先需要创建一个知识库,步骤如下:

  • 登录到ThinkDoc平台:

    https://doc.bluedigit.ai

  • 选择“知识库”,点击“创建知识库”。

  • 输入知识库的名称和描述。

  • 点击“创建”按钮,完成知识库的创建。


创建了知识库之后,ThinkDoc 支持4种方式,向知识库添加资料,分别是:上传文件、导入文件夹、新建笔记和导入网址。



1. 上传文件

ThinkDoc支持多种文件格式,包括PDF、Word、PPT等,支持多个文件批量上传,步骤如下:

  • 在知识库页面,点击“上传文件”按钮。

  • 选择要上传的文件,支持单个文件或多个文件的批量上传。

  • 点击“上传”按钮,将文件上传到知识库中。


2. 导入文件夹

ThinkDoc还支持从本地文件夹批量导入文件,步骤如下:

  • 在知识库页面,点击“导入文件夹”按钮。

  • 选择本地文件夹路径,系统会自动扫描文件夹中的所有文件并上传到知识库中。

  • 点击“导入”按钮,完成文件夹的导入。


3. 新建笔记

除了上传文件,你还可以在知识库中新建笔记。笔记可以包含文本内容,支持Markdown格式,步骤如下:

  • 在知识库页面,点击“新建笔记”按钮。

  • 在文本编辑器中输入或粘贴笔记内容,支持Markdown格式,可实时预览。

  • 点击“保存”按钮,将笔记保存到知识库中。



4. 导入网址

你还可以从网址导入文档。ThinkDoc会自动抓取网页内容并解析,步骤如下:

  • 在知识库页面,点击“导入网址”按钮。

  • 输入要导入的网址。

  • 点击“导入”按钮,系统会自动抓取网页内容并上传到知识库中。


值得说明的是,并不是所有网址都可以成功抓取内容。


 2 

解析文档的两种模式


ThinkDoc提供了两种解析模式:深度解析和快速解析


我们可以在 ThinkDoc 的设置页面,选择使用哪一种解析模式。选定后,文档解析将默认使用此模式。



1. 深度解析


深度解析是一种全面的文档分析方式,它不仅提取文档的文本内容,还保留了文档的完整结构和格式信息。


  • 完整的文档结构和格式:包括文档的整体布局、章节划分等。

  • 表格及其布局:不仅提取表格中的数据,还保留表格的行、列结构和样式。

  • 图片和图表:提取文档中的图片和图表,并尝试理解它们的内容和上下文。

  • 页眉和页脚:保留文档的页眉和页脚信息。

  • 列表和缩进:保留文档中的列表结构和缩进格式。


深度解析能提供更全面、更准确的文档解析,适合对解析质量要求较高的场景。由于需要调用各种模型进行处理,深度解析需要更多的算力、更多的时间来执行。


2. 快速解析


快速解析是一种专注于快速提取文档基础文本内容的方式,主要提取文档的核心文本信息,同时,尽可能保留文档中原本的格式与图片信息。


  • 基础文本内容:提取文档中的主要文本。

  • 简单段落结构:保留基本的段落划分。

  • 基础标题:提取文档中的标题信息。

  • 图片和表格:尽可能准确提取表格数据和图像,但有可能丢失信息。


快速解析专注于提取核心文本内容,因此处理速度更快,对系统资源的消耗也较低。对于格式简单的文档(例如会议纪要、录音文稿等)或需要快速处理大量文档的场景,快速解析是一个理想的选择。


我们在知识库的文件列表中,可以看到刚刚上传的文件,处于“待解析”状态,此时我们点击操作栏的“开始解析”按钮,ThinkDoc 将开始解析此文件、分块、向量化后保存在向量数据库中。


当解析成功后,解析状态也随之改变。这时我们可以点击该文件,查看解析结果。



如上图所示,我们可以看到一个Docx文件,解析出 1547 个文本段落、51 个表格和 185 张图片。


在这个文件详情页面,我们还可以下载原文件、查看解析后的Markdown 格式文档,以及自动化提取的元数据,包括:名称、作者、摘要、关键词等。


 3 

在知识库中检索


ThinkDoc不仅提供了强大的文档解析功能,还集成了智能对话功能,能够在知识库中进行检索,基于检索到的内容进行智能问答。


通过设置不同的检索模式,用户可以更精准地获取所需信息。


ThinkDoc支持多种检索模式,包括:向量检索、混合检索和全文检索。


  • 向量检索:基于向量空间模型,通过计算文档和查询向量之间的相似度来检索相关文档。适合处理语义相似性较高的查询。

  • 混合检索:结合向量检索和关键词检索,既能利用向量检索的语义理解能力,又能利用关键词检索的精确性。适合复杂的查询场景。

  • 全文检索:基于关键词的检索方式,能够快速查找文档中包含特定关键词的内容。适合精确查找特定词汇或短语的场景。


在智能对话、检索分析和专业写作这三个智能体中,我们都可以设置检索模式,来优化检索和生成效果。



例如,用户可以在对话设置中选择“向量检索”、“混合检索”或“全文检索”,并根据具体需求调整TopK、分数阀值、重排序等参数。


 4 

如何使用 API 接口


ThinkDoc提供了强大的API接口,使得开发者可以轻松地将文档解析和智能对话功能集成到自己的应用中。


https://doc.bluedigit.ai/api/redoc


ThinkDoc 的 API 文档地址为:https://doc.bluedigit.ai/api/redoc。


在开始集成之前,建议你仔细阅读 API 文档,了解各个接口的功能和参数。API 文档中详细介绍了如何上传文件、解析文档、检索知识库等功能。


以下是如何使用相关 API 的示例。


1. 获取API Key


首先,你需要获取一个 API Key。登录到 ThinkDoc ,点击左下角进入用户账号页面,创建自己的 API Key。你可以创建多个 API Key,方便在不同的项目中使用。


2. API接口:上传文件


我们可以通过用户界面或 API 接口,创建一个知识库,并获取知识库 ID,然后可以调用上传文件的接口,将指定路径的文件,上传到该知识库中。


代码示例如下:


import requestsdef upload_file_to_kb(api_key, kb_id, file_path):    """    上传文件到知识库    Args:        api_key: API密钥        kb_id: 知识库ID        file_path: 本地文件路径    Returns:        dict: 上传结果    """    url = f"https://doc.bluedigit.ai/api/kb/{kb_id}/files"    headers = {        "Authorization": f"Bearer {api_key}"    }    with open(file_path, 'rb') as f:        files = {            'file': (file_path.split('/')[-1], f, 'application/octet-stream')        }        response = requests.post(url, headers=headers, files=files)    if response.status_code == 200:        return response.json()    else:        print(f"上传失败: {response.status_code} - {response.text}")        return None# 使用示例api_key = "td-your-api-key"kb_id = "your-knowledge-base-id"file_path = "/path/to/your/document.pdf"result = upload_file_to_kb(api_key, kb_id, file_path)if result:    print(f"文件上传成功,文件ID: {result['uploaded_files'][0]['id']}")


3. API接口:文档解析


上传文件后,我们可以对该文件启动解析任务。代码示例如下:


def parse_file(api_key, kb_id, file_id):    """    启动文件解析    Args:        api_key: API密钥        kb_id: 知识库ID        file_id: 文件ID    Returns:        dict: 解析任务信息    """    url = f"https://doc.bluedigit.ai/api/kb/{kb_id}/files/{file_id}/parse"    headers = {        "Authorization": f"Bearer {api_key}",        "Content-Type": "application/json"    }    response = requests.post(url, headers=headers)    if response.status_code == 200:        return response.json()    else:        print(f"解析启动失败: {response.status_code} - {response.text}")        return None# 使用示例parse_result = parse_file(api_key, kb_id, "file_123456")if parse_result:    job_id = parse_result['job_id']    print(f"解析任务已启动,任务ID: {job_id}")


4. API接口:检索信息


然后,我们可以对指定的知识库或文件,进行检索。代码示例如下:


def retrieve_content(api_key, query, kb_ids=None, file_ids=None, top_k=10, score_threshold=0.5):    """    检索知识库内容    Args:        api_key: API密钥        query: 检索查询        kb_ids: 知识库ID列表        file_ids: 文件ID列表        top_k: 返回结果数量        score_threshold: 相关性阈值    Returns:        dict: 检索结果    """    url = "https://doc.bluedigit.ai/api/retrieve"    headers = {        "Authorization": f"Bearer {api_key}",        "Content-Type": "application/json"    }    data = {        "query": query,        "retrieval_setting": {            "top_k": top_k,            "score_threshold": score_threshold,            "query_type": "vector",            "rerank": False,            "top_n": 5        }    }    if kb_ids:        data["kb_ids"] = kb_ids    if file_ids:        data["file_ids"] = file_ids    response = requests.post(url, headers=headers, json=data)    if response.status_code == 200:        return response.json()    else:        print(f"检索失败: {response.status_code} - {response.text}")        return None# 使用示例# 在知识库中检索result = retrieve_content(    api_key=api_key,    query="人工智能的发展趋势",    kb_ids=["kb_123456"],    top_k=5,    score_threshold=0.7)if result:    print(f"找到 {len(result['records'])} 条相关记录:")    for record in result['records']:        print(f"- 文件: {record['file_name']}")        print(f"  相关性: {record['score']}")        print(f"  内容: {record['text'][:100]}...")        print()


如上所示,基于 ThinkDoc 提供的 API 接口,我们可以根据自己的需求,将ThinkDoc 的文档解析和融合检索功能,集成到自己的 RAG 应用中。


 4 

总结 & 下一步


ThinkDoc 先进的多模态文档解析与融合检索技术,为企业级 RAG 应用系统提供了强大的支持。


通过深度解析快速解析两种模式,用户可以根据具体需求选择合适的解析方式,从而提高文档处理的效率和质量。


同时,ThinkDoc的智能对话功能和相关API接口,使得开发者可以轻松地将这些功能集成到自己的应用中,进一步提升RAG效果。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询