Untitled

 avatar
unknown
python
22 days ago
2.1 kB
19
Indexable
from langchain import Agent, Tool, LLM
from langchain.memory import ConversationBufferMemory

# Инструменты для анализа
class GitAnalyzer:
    def analyze_changes(self, pr_id):
        """Анализ изменений в PR"""
        return {
            'files_changed': ['file1.py', 'file2.py'],
            'total_changes': '+150/-50',
            'impact_analysis': 'Medium'
        }

class CodeQualityChecker:
    def check_quality(self, code):
        """Проверка качества кода"""
        return {
            'style_issues': [],
            'complexity_score': 'A',
            'recommendations': []
        }

class SecurityAnalyzer:
    def scan_vulnerabilities(self, code):
        """Поиск уязвимостей"""
        return {
            'severity': 'LOW',
            'findings': [],
            'dependencies': []
        }

# Создание инструментов
tools = [
    Tool(
        name="git_analyzer",
        func=GitAnalyzer().analyze_changes,
        description="Анализ изменений в PR"
    ),
    Tool(
        name="code_checker",
        func=CodeQualityChecker().check_quality,
        description="Проверка качества кода"
    ),
    Tool(
        name="security_scanner",
        func=SecurityAnalyzer().scan_vulnerabilities,
        description="Проверка безопасности"
    )
]

# Создание агента
code_review_agent = Agent(
    llm=LLM(model="gpt-4"),
    tools=tools,
    memory=ConversationBufferMemory(),
    system_prompt="""
    Ты - опытный Code Reviewer. Твоя задача:
    1. Анализировать изменения в PR
    2. Проверять качество кода
    3. Искать потенциальные проблемы
    4. Генерировать понятные рекомендации
    """
)

# Использование агента
review = code_review_agent.run(
    "Проанализируй PR #123 и создай детальный отчёт"
)
Leave a Comment