Untitled
unknown
python
9 months ago
2.1 kB
21
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 и создай детальный отчёт"
)Editor is loading...
Leave a Comment