From 168e3c99d5c07206066e0176e9726afc9a629382 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Mon, 24 Mar 2025 08:09:29 +0000 Subject: [PATCH] Enhance regex pattern with expanded CJK character support and fix import sorting Co-Authored-By: Joe Moura --- src/crewai/agent.py | 5 ++++- tests/test_chinese_support/test_chinese_agent.py | 4 +++- tests/test_chinese_support/test_chinese_agent_name.py | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/crewai/agent.py b/src/crewai/agent.py index 9a2f098ff..6a1a31792 100644 --- a/src/crewai/agent.py +++ b/src/crewai/agent.py @@ -140,7 +140,10 @@ class Agent(BaseAgent): self.embedder = crew_embedder if self.knowledge_sources: - full_pattern = re.compile(r"[^a-zA-Z0-9\u4e00-\u9fa5\-_\r\n]|(\.\.)") + # Unicode ranges for CJK characters: + # \u4e00-\u9fff: Common Chinese characters + # \u3400-\u4dbf: Extended CJK characters + full_pattern = re.compile(r"[^\w\u4e00-\u9fff\u3400-\u4dbf\-_\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 diff --git a/tests/test_chinese_support/test_chinese_agent.py b/tests/test_chinese_support/test_chinese_agent.py index 41dabeca8..5928d46dc 100644 --- a/tests/test_chinese_support/test_chinese_agent.py +++ b/tests/test_chinese_support/test_chinese_agent.py @@ -1,10 +1,12 @@ -import pytest import re from unittest.mock import MagicMock, patch +import pytest + from crewai.agent import Agent from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource + def test_agent_with_chinese_role_name(): """Test that an agent with a Chinese role name works correctly with the updated regex pattern.""" # Create a knowledge source with some content diff --git a/tests/test_chinese_support/test_chinese_agent_name.py b/tests/test_chinese_support/test_chinese_agent_name.py index 6ab035ba0..9194894d7 100644 --- a/tests/test_chinese_support/test_chinese_agent_name.py +++ b/tests/test_chinese_support/test_chinese_agent_name.py @@ -1,9 +1,11 @@ -import pytest import re +import pytest + from crewai.agent import Agent from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource + def test_agent_with_chinese_role_name(): """Test that an agent with a Chinese role name works correctly.""" # Create a knowledge source with some content