Skip to content

[BUG]agent.py:set_knowledge not support CHN #2454

Open
@iniwap

Description

@iniwap

Description

def set_knowledge(self, crew_embedder: Optional[Dict[str, Any]] = None):
    try:
        if self.embedder is None and crew_embedder:
            self.embedder = crew_embedder

        if self.knowledge_sources:
            full_pattern = re.compile(r"[^a-zA-Z0-9\-_\r\n]|(\.\.)")
            knowledge_agent_name = f"{re.sub(full_pattern, '_', self.role)}"
            if isinstance(self.knowledge_sources, list) and all(
                isinstance(k, BaseKnowledgeSource) for k in self.knowledge_sources
            ):
                self.knowledge = Knowledge(
                    sources=self.knowledge_sources,
                    embedder=self.embedder,
                    collection_name=knowledge_agent_name,
                    storage=self.knowledge_storage or None,
                )
    except (TypeError, ValueError) as e:
        raise ValueError(f"Invalid Knowledge Configuration: {str(e)}")

not support CNH,should change to "full_pattern = re.compile(r"[^a-zA-Z0-9\u4e00-\u9fa5\-_\r\n]|(..)")"

Steps to Reproduce

set agent role to CNH

Expected behavior

no error

Screenshots/Code snippets

def set_knowledge(self, crew_embedder: Optional[Dict[str, Any]] = None):
    try:
        if self.embedder is None and crew_embedder:
            self.embedder = crew_embedder

        if self.knowledge_sources:
            full_pattern = re.compile(r"[^a-zA-Z0-9\-_\r\n]|(\.\.)")
            knowledge_agent_name = f"{re.sub(full_pattern, '_', self.role)}"
            if isinstance(self.knowledge_sources, list) and all(
                isinstance(k, BaseKnowledgeSource) for k in self.knowledge_sources
            ):
                self.knowledge = Knowledge(
                    sources=self.knowledge_sources,
                    embedder=self.embedder,
                    collection_name=knowledge_agent_name,
                    storage=self.knowledge_storage or None,
                )
    except (TypeError, ValueError) as e:
        raise ValueError(f"Invalid Knowledge Configuration: {str(e)}")

Operating System

Windows 11

Python Version

3.11

crewAI Version

108

crewAI Tools Version

none

Virtual Environment

Venv

Evidence

NONE

Possible Solution

def set_knowledge(self, crew_embedder: Optional[Dict[str, Any]] = None):
    try:
        if self.embedder is None and crew_embedder:
            self.embedder = crew_embedder

        if self.knowledge_sources:
            full_pattern = re.compile(r"[^a-zA-Z0-9\u4e00-\u9fa5\-_\r\n]|(\.\.)")
            knowledge_agent_name = f"{re.sub(full_pattern, '_', self.role)}"
            if isinstance(self.knowledge_sources, list) and all(
                isinstance(k, BaseKnowledgeSource) for k in self.knowledge_sources
            ):
                self.knowledge = Knowledge(
                    sources=self.knowledge_sources,
                    embedder=self.embedder,
                    collection_name=knowledge_agent_name,
                    storage=self.knowledge_storage or None,
                )
    except (TypeError, ValueError) as e:
        raise ValueError(f"Invalid Knowledge Configuration: {str(e)}")

Additional context

NO

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions