官方的文档如下
https://docs.crewai.com/concepts/knowledge
但是不知道为什么,可能是版本的问题(我用的是0.86.0),参考官方文档的配置我会报错,并且也导入不了数据库,也可能用的不是官方API。本文以常用的csv,json,pdf作为知识库进行举例
重点:下面的代码是基于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": "孙七的语文成绩是多少"}

最低0.47元/天 解锁文章
3309

被折叠的 条评论
为什么被折叠?



