This commit is contained in:
Lorenze Jay
2024-11-20 13:48:11 -08:00
parent 52189a46bc
commit 8a5404275f
4 changed files with 5 additions and 35 deletions

View File

@@ -1,30 +0,0 @@
from abc import ABC, abstractmethod
from typing import List
class BaseKnowledgeSource(ABC):
"""Abstract base class for different types of knowledge sources."""
def __init__(
self,
chunk_size: int = 1000,
chunk_overlap: int = 200,
):
self.chunk_size = chunk_size
self.chunk_overlap = chunk_overlap
self.chunks: List[str] = []
@abstractmethod
def load_content(self):
"""Load and preprocess content from the source."""
pass
@abstractmethod
def add(self) -> None:
"""Add content to the knowledge base, chunk it, and compute embeddings."""
pass
@abstractmethod
def query(self, query: str, top_k: int = 3) -> str:
"""Query the knowledge base using semantic search."""
pass

View File

@@ -1,7 +1,7 @@
import os import os
import shutil import shutil
import subprocess import subprocess
from typing import Any, List, Literal, Optional, Union, Dict from typing import Any, List, Literal, Optional, Union
from pydantic import Field, InstanceOf, PrivateAttr, model_validator from pydantic import Field, InstanceOf, PrivateAttr, model_validator
@@ -9,7 +9,6 @@ from crewai.agents import CacheHandler
from crewai.agents.agent_builder.base_agent import BaseAgent from crewai.agents.agent_builder.base_agent import BaseAgent
from crewai.agents.crew_agent_executor import CrewAgentExecutor from crewai.agents.crew_agent_executor import CrewAgentExecutor
from crewai.cli.constants import ENV_VARS from crewai.cli.constants import ENV_VARS
from crewai.knowledge.knowledge import Knowledge
from crewai.llm import LLM from crewai.llm import LLM
from crewai.memory.contextual.contextual_memory import ContextualMemory from crewai.memory.contextual.contextual_memory import ContextualMemory
from crewai.tools import BaseTool from crewai.tools import BaseTool

View File

@@ -28,7 +28,6 @@ from crewai.memory.entity.entity_memory import EntityMemory
from crewai.memory.long_term.long_term_memory import LongTermMemory from crewai.memory.long_term.long_term_memory import LongTermMemory
from crewai.memory.short_term.short_term_memory import ShortTermMemory from crewai.memory.short_term.short_term_memory import ShortTermMemory
from crewai.knowledge.knowledge import Knowledge from crewai.knowledge.knowledge import Knowledge
from crewai.knowledge.source.base_knowledge_source import BaseKnowledgeSource
from crewai.memory.user.user_memory import UserMemory from crewai.memory.user.user_memory import UserMemory
from crewai.process import Process from crewai.process import Process
from crewai.task import Task from crewai.task import Task
@@ -276,7 +275,10 @@ class Crew(BaseModel):
@model_validator(mode="after") @model_validator(mode="after")
def create_crew_knowledge(self) -> "Crew": def create_crew_knowledge(self) -> "Crew":
if self.knowledge: if self.knowledge:
self.knowledge = Knowledge(**self.knowledge) try:
self.knowledge = Knowledge(**self.knowledge) if isinstance(self.knowledge, dict) else self.knowledge
except (TypeError, ValueError) as e:
raise ValueError(f"Invalid knowledge configuration: {str(e)}")
return self return self
@model_validator(mode="after") @model_validator(mode="after")

View File

@@ -1,4 +1,3 @@
import uuid
import contextlib import contextlib
import io import io
import logging import logging