crewai框架第三方API使用官方RAG工具(pdf,csv,json)

最近在研究调用官方的工具,但官方文档的说明是在是太少了,后来在一个视频里看到了如何配置,记录一下

以PDF RAG Search工具举例,官方文档对于自定义模型的说明如下:

默认情况下,该工具使用 OpenAI 进行嵌入和总结。要自定义模型,可以使用配置字典,如下所示:

tool = PDFSearchTool(
    config=dict(
        llm=dict(
            provider="ollama", # or google, openai, anthropic, llama2, ...
            config=dict(
                model="llama2",
                # temperature=0.5,
                # top_p=1,
                # stream=true,
            ),
        ),
        embedder=dict(
            provider="google", # or openai, ollama, ...
            config=dict(
                model="models/embedding-001",
                task_type="retrieval_document",
                # title="Embeddings",
            ),
        ),
    )
)

但是这个的前提是使用的官方openai的API,如果要改成第三方API的,配置应该如下:

from crewai_tools import PDFSearchTool

# 自定义大模型配置
pdf_tool = PDFSearchTool(
    config=dict(
        llm=dict(
            provider="openai",
            config=dict(
                base_url="https://xxxxxxx/v1",
                api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
                model="gpt-4o"
            ),
        ),
        embedder=dict(
            provider="openai",
            config=dict(
                api_base="https://xxxxxxx/v1",
                api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
                model="text-embedding-3-small"
            ),
        ),
    )
)

其中,gpt-4otext-embedding-3-small都是购买的第三方API里的模型名称

在这里插入图片描述
如果想用本地模型,配置如下:

from crewai_tools import PDFSearchTool

pdf_tool = PDFSearchTool(
    config=dict(
        llm=dict(
            provider="openai",
            config=dict(
                # Ollama deepseek-r1:8b
                base_url="http://localhost:11434/v1",
                model="deepseek-r1:8b"
            ),
        ),
        embedder=dict(
            provider="openai",
            config=dict(
                # 文本嵌入模型 bge-m3
                api_base="http://localhost:11434/v1",
                model="bge-m3:latest"
            ),
        ),
    )
)

下面是一个可以跑通的例子:

from crewai_tools import PDFSearchTool
from dotenv import load_dotenv
import os

load_dotenv() # 加载环境变量

# 自定义大模型配置
tool = PDFSearchTool(
    config=dict(
        llm=dict(
            provider="openai",
            config=dict(
                base_url=os.getenv("OPENAI_API_BASE"),
                api_key=os.getenv("OPENAI_API_KEY"),
                model=os.getenv("OPENAI_MODEL_NAME")
            ),
        ),
        embedder=dict(
            provider="openai",
            config=dict(
                api_base=os.getenv("OPENAI_API_BASE"),
                api_key=os.getenv("OPENAI_API_KEY"),
                model="text-embedding-3-small"
            ),
        ),
    )
)


# 运行工具,调用工具解析文件并检索内容
result = tool.run(
    pdf='../data/deepseek.pdf',
    # 其他工具使用的参数基本都是search_query
    query="介绍一下deepseek的核心驱技为优势"
)
print("result:",result)

在这里插入图片描述

注:

deepseek.pdf内容如下

DeepSeek:专注人工智能前沿的创新科技企业
一、企业概况
DeepSeek(深度求索)是一一以人人工智能技为核心驱动力的的创新科科技司,成立于 2023年成总部位 中国。司,聚焦 大模科研发、自然语言处理深NLP是、机器学习等前沿领域成致的 通过技为突破推力AI的普惠化应用。DeepSeek人"探)智能本质成赋能人类未来"核使命成专注 核企业和开发者提供高效、可靠的人工智能解决方案成覆盖金融、医疗、教育、智能制造等多个行业。立于人来成司,凭借技为实的和场景化落地能的成迅速立核AI赛道的新锐的量。
二、心驱技为优势
DeepSeek的心驱竞争的源 其自主研发的多模态大模科体系。司,构建了千亿参数规模的预训练模科框架成支持文本、图像、语音等多模态数据的融合分析与生立。在自然语言理解深NLU是领域成其模科在语义推理、长文本处理、多语言交互等任务中达到行业领先水平。此外成DeepSeek创新性地提出了力态知识蒸馏技为成能够在保证模科性能的前提下成显著降低算的消耗成使AI服务更易 部署在边缘设备中。通过持续优化算法架构与训练方法成司,技为团队已申请百余项国内外专利。
三、应用场景与产品生态
DeepSeek的技为已实现多维求商业化落地:
智能客服系统:核企业提供24小时多轮对话服务成理解准确率达95%人上;
行业知识引擎:赋能金融研报自力生立、医疗影像辅助诊断等垂直场景;
开发者平台:开放API接口与工具链成支持快速构建定制化AI应用;
教育解决方案:通过个性化学习路径推荐成提升教育资源配置效率。
司,采用"基础研究+场景度耕"的双轮动力模式成已与200+企业建于合作成日均处理数据量超10亿条。
四、发展愿景与社会责任
DeepSeek始终秉持**"技为向善"**的发展理念成在追索商业价值的同时成积极参与AI伦理治理。司,牵头制定了行业首个《生立式AI内容溯源标准》成通过区块链技为实现内容可追溯成防范技为滥用风险。未来三年成DeepSeek计划投入5亿元用 通用人工智能深AGI是的基础研究成并设于开放实验室支持学为机构的前沿探)。司,目标一通过持续创新成打造安全、可信、易用的人工智能基础设施成助的全球数字化转科。
五、团队与文化基因
创始团队由顶尖AI科学以与资度产业专以组立成立员多来自国际知名高校与科技企业。司,构建了**"极客精神+务实创新"**的文化体系成推行扁平化管理与跨学科协作机制成鼓励技为人才在宽松环境中实现突破。通过"星火计划"人才培养项目成DeepSeek已建于起覆盖算法、工程、产品等多领域的千人团队成研发人员占比超过80%成持续核行业发展输送高端人才。

.env文件内容,需要替换成自己的API配置

# ChatGPT
OPENAI_API_BASE="https://xxxxxxxxxxxxx/v1"
OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
OPENAI_MODEL_NAME="gpt-4o"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/966577.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2011-2020年各省电话普及率数据

2011-2020年各省电话普及率数据 1、时间:2011-2020年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区名称、年份、电话普及率(包括移动电话)(部/百人) 4、范围:31省 5、指标说明:电话普及率是衡量一个…

【自开发工具介绍】SQLSERVER的ImpDp和ExpDp工具演示05

SQLSERVER的ImpDp和ExpDp工具演示 1、表部分数据导出 (-query) ※「-query」和「-include_table」必须一起使用 「-query」后面字符串是sql文的where语句,但要注意要使用%,需要写%% 验证用:导出的表,导入到新的数据库 db的数…

ASP.NET Core 使用 WebClient 从 URL 下载

本文使用 ASP .NET Core 3.1,但它在.NET 5、 .NET 6和.NET 8上也同样适用。如果使用较旧的.NET Framework,请参阅本文,不过,变化不大。 如果想要从 URL 下载任何数据类型,请参阅本文:HttpClient 使用WebC…

快速上手Vim的使用

Vim Linux编辑器-vim使用命令行模式下所有选项都可以带数字底行模式可视块模式(ctrlV进入) Linux编辑器-vim使用 Vim有多种模式的编辑器。能帮助我们很快的进行代码的编辑,甚至完成很多其他事情。 默认情况下我们打开vim在命令模式下&#x…

nodejs - vue 视频切片上传,本地正常,线上环境导致磁盘爆满bug

nodejs 视频切片上传,本地正常,线上环境导致磁盘爆满bug 原因: 然后在每隔一分钟执行du -sh ls ,发现文件变得越来越大,即文件下的mp4文件越来越大 最后导致磁盘直接爆满 排查原因 1、尝试将m3u8文件夹下的所有视…

114,【6】攻防世界 web wzsc_文件上传

进入靶场 传个桌面有的 直接空白了 我们 访问一下上传的东西 /index 没显示用于解析的.htaccess和.user.ini 文件,还两个都不显示 .htaccess 和 .user.ini 文件分别用于 Apache 服务器和 PHP-FPM 环境的目录级配置 但上传的时候bp查看状态码是200,…

Open3d Qt的环境配置

Open3d Qt的环境配置 一、概述二、操作流程2.1 下载文件2.2 新建文件夹2.3 环境变量设置2.4 qt6 引用3、qt中调用4、资源下载一、概述 目前统一使用qt6配置,open3d中可视化功能目前使用vtk代替,语言为c++。 二、操作流程 2.1 下载文件 访问open3d github链接,进入releas…

零基础都可以本地部署Deepseek R1

文章目录 一、硬件配置需求二、详细部署步骤1. 安装 Ollama 工具2. 部署 DeepSeek-R1 模型3. API使用4. 配置图形化交互界面(可选)5. 使用与注意事项 一、硬件配置需求 不同版本的 DeepSeek-R1 模型参数量不同,对硬件资源的要求也不尽相同。…

Rocky Linux9安装Zabbix7.0(精简版)

Linux 系统版本 Rocky Linux release 9.3 (Blue Onyx) 注意:zabbix 7以上版本不支持CentOS 7系统,需要CentOS 8以上, 本教程支持CentOS9及Rocky Linux 9 在Rocky Linux release 9.3测试通过 Linux环境准备 关闭防火墙和selinux #关闭防…

Qt程序发布

关注后回复 qt 获取相关资料 找到Qt安装目录中的 windeployqt.exe 将其路径添加到Path环境变量中可能会涉及到多平台架构的版本,选择一个目标版本将Release版中的 ***.exe 复制到某空文件夹cmd 进入上述文件夹中执行 windeployqt.exe ***.exe此时会将该 ***.exe 文件…

从O(k*n)到O(1):如何用哈希表终结多层if判断的性能困局

【前言】   本文将以哈希表重构实战为核心,完整展示如何将传统条件匹配逻辑(上千层if-else判断)转化为O(1)的哈希表高效实现。通过指纹验证场景的代码级解剖,您将深入理解:   1.哈希函数设计如何规避冲突陷阱   2.链式寻址法的工程实现…

后端java工程师经验之谈,工作7年,mysql使用心得

mysql 工作7年,mysql使用心得 mysql1.创建变量2.创建存储过程2.1:WHILE循环2.2:repeat循环2.3:loop循环2.4:存储过程,游标2.5:存储过程,有输入参数和输出参数 3.三种注释写法4.case …

【WB 深度学习实验管理】利用 Hugging Face 实现高效的自然语言处理实验跟踪与可视化

本文使用到的 Jupyter Notebook 可在GitHub仓库002文件夹找到,别忘了给仓库点个小心心~~~ https://github.com/LFF8888/FF-Studio-Resources 在自然语言处理领域,使用Hugging Face的Transformers库进行模型训练已经成为主流。然而,随着模型复…

智能理解 PPT 内容,快速生成讲解视频

当我们想根据一版 PPT 制作出相对应的解锁视频时,从撰写解锁词,录制音频到剪辑视频,每一个环节都需要投入大量的时间和精力,本方案将依托于阿里云函数计算 FC 和百炼模型服务,实现从 PPT 到视频的全自动转换&#xff0…

如何使用Gemini模型,国内如何订阅购买Gemini Pro的教程,Gemini Pro 免费试用操作步骤, 谷歌 aistudio 使用入口

最近的榜首又被Gemini给霸占了,很多童鞋想要体验一翻 Gemini免费库模型更新了 Gemini2.0向所有人开放了!使用了真香 目前呢2.0flash和Gemini-2.0-Flash-Thinking-Exp、Gemini-2.0-Flash-Thinking-Exp-with-apps已经免费给所有注册用户开放了&#xff0c…

【学术投稿】第五届计算机网络安全与软件工程(CNSSE 2025)

重要信息 官网:www.cnsse.org 时间:2025年2月21-23日 地点:中国-青岛 简介 第五届计算机网络安全与软件工程(CNSSE 2025)将于2025年2月21-23日在中国-青岛举行。CNSSE 2025专注于计算机网络安全、软件工程、信号处…

Python----Python高级(网络编程:网络基础:发展历程,IP地址,MAC地址,域名,端口,子网掩码,网关,URL,DHCP,交换机)

一、网络 早期的计算机程序都是在本机上运行的,数据存储和处理都在同一台机器上完成。随着技术的发展,人 们开始有了让计算机之间相互通信的需求。例如安装在个人计算机上的计算器或记事本应用,其运行环 境仅限于个人计算机内部。这种设置虽然…

即梦(Dreamina)技术浅析(六):多模态生成模型

多模态生成模型是即梦(Dreamina)的核心技术之一,旨在结合文本和图像信息,生成更符合用户需求的视觉内容。多模态生成模型通过整合不同类型的数据(如文本和图像),能够实现更丰富、更精准的生成效果。 1. 基本原理 1.1 多模态生成模型概述 多模态生成模型的目标是结合不…

全程Kali linux---CTFshow misc入门(38-50)

第三十八题: ctfshow{48b722b570c603ef58cc0b83bbf7680d} 第三十九题: 37换成1,36换成0,就得到长度为287的二进制字符串,因为不能被8整除所以,考虑每7位转换一个字符,得到flag。 ctfshow{5281…

学习数据结构(6)单链表OJ上

1.移除链表元素 解法一:(我的做法)在遍历的同时移除,代码写法比较复杂 解法二:创建新的链表,遍历原链表,将非val的节点尾插到新链表,注意,如果原链表结尾是val节点需要将…