CrewAI框架添加知识源

官方的文档如下

https://docs.crewai.com/concepts/knowledge

但是不知道为什么,可能是版本的问题(我用的是0.86.0),参考官方文档的配置我会报错,并且也导入不了数据库,也可能用的不是官方API。本文以常用的csvjsonpdf作为知识库进行举例

重点:下面的代码是基于0.83.0版本的!!!最新版本(0.108.0)框架的配置可以移步文章底部补充
在这里插入图片描述

使用csv文件作为数据源

def csv_knowledge_source():
    # 指定向量数据库持久化文件夹(如需要可取消注释)
    os.environ["CREWAI_STORAGE_DIR"] = "vector_store_csv"

    current_dir = Path(__file__).parent
    csv_path = current_dir / "files/high_school_scores.csv"

    if not csv_path.exists():
        raise FileNotFoundError(f"CSV file not found at {
     
     csv_path}")

    csv_source = CSVKnowledgeSource(
        file_path=csv_path,
        metadata={
   
   "preference": "score"}
    )

    openai_api_base = os.getenv("OPENAI_API_BASE")
    openai_api_key = os.getenv("OPENAI_API_KEY")

    if not openai_api_base or not openai_api_key:
        raise ValueError("OPENAI_API_BASE or OPENAI_API_KEY not set.")

    agent = Agent(
        role="高中老师",
        goal="你了解学生的所有成绩",
        backstory="你经常关注学生的成绩",
        verbose=True,
    )

    task = Task(
        description="使用知识库中的信息回答有关学生成绩的问题: {question}",
        expected_output="基于知识库数据的解答:",
        agent=agent,
    )

    crew = Crew(
        agents=[agent],
        tasks=[task],
        verbose=True,
        process=Process.sequential,
        knowledge={
   
   
            "sources": [csv_source],
            # "embedder": {
   
   
            #     "provider": "openai",
            #     "api_base": openai_api_base,  # 移除了config层级
            #     "api_key": openai_api_key,
            #     "model": "text-embedding-3-small"
            # }
        }
    )

    try:
        result = crew.kickoff(inputs={
   
   "question": "孙七的语文成绩是多少"}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Otto_1027

蟹蟹你,我会继续努力的~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值