Skip to content

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

Closed as not planned
Closed as not planned
@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

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions