1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
class AdvancedGeminiAgent:
"""使用 Gemini Flash、AutoGen 和 Semantic Kernel 的高级 AI 智能体"""
def __init__(self):
self.sk_plugin = SemanticKernelGeminiPlugin()
self.gemini = GeminiWrapper()
self.setup_agents()
def setup_agents(self):
"""使用 Gemini Flash 初始化 AutoGen 智能体"""
gemini_config = {
"config_list": [{"model": "gemini-1.5-flash", "api_key": GEMINI_API_KEY}],
"temperature": 0.7,
}
# 主助手智能体
self.assistant = autogen.ConversableAgent(
name="GeminiAssistant",
llm_config=gemini_config,
system_message="""你是一个由 Gemini Flash 驱动的高级 AI 助手,具备 Semantic Kernel 能力。
你擅长分析、问题解决和创意思维。始终提供全面、可操作的见解。
使用结构化响应并考虑多个角度。""",
human_input_mode="NEVER",
)
# 代码审查智能体
self.code_reviewer = autogen.ConversableAgent(
name="GeminiCodeReviewer",
llm_config={**gemini_config, "temperature": 0.3},
system_message="""你是一个由 Gemini Flash 驱动的高级代码审查员。
分析代码的最佳实践、安全性、性能和可维护性。
提供具体、可操作的反馈和示例。""",
human_input_mode="NEVER",
)
# 创意分析师智能体
self.creative_analyst = autogen.ConversableAgent(
name="GeminiCreativeAnalyst",
llm_config={**gemini_config, "temperature": 0.8},
system_message="""你是一个由 Gemini Flash 驱动的创意问题解决者和创新专家。
生成创新解决方案,提供新鲜视角。
平衡创意与实用性。""",
human_input_mode="NEVER",
)
# 数据专家智能体
self.data_specialist = autogen.ConversableAgent(
name="GeminiDataSpecialist",
llm_config={**gemini_config, "temperature": 0.4},
system_message="""你是一个由 Gemini Flash 驱动的数据分析专家。
提供基于证据的建议和统计视角。""",
human_input_mode="NEVER",
)
# 用户代理
self.user_proxy = autogen.ConversableAgent(
name="UserProxy",
human_input_mode="NEVER",
max_consecutive_auto_reply=2,
is_termination_msg=lambda x: x.get("content", "").rstrip().endswith("TERMINATE"),
llm_config=False,
)
def analyze_with_semantic_kernel(self, content: str, analysis_type: str) -> str:
"""AutoGen 和 Semantic Kernel 之间的桥接函数"""
try:
if analysis_type == "text":
return self.sk_plugin.analyze_text(content)
elif analysis_type == "code":
return self.sk_plugin.code_analysis(content)
elif analysis_type == "summary":
return self.sk_plugin.generate_summary(content)
elif analysis_type == "creative":
return self.sk_plugin.creative_solution(content)
else:
return "无效的分析类型。请使用 'text'、'code'、'summary' 或 'creative'。"
except Exception as e:
return f"Semantic Kernel 分析错误: {str(e)}"
def multi_agent_collaboration(self, task: str) -> Dict[str, str]:
"""使用 Gemini 编排多智能体协作"""
results = {}
agents = {
"assistant": (self.assistant, "综合分析"),
"code_reviewer": (self.code_reviewer, "代码审查视角"),
"creative_analyst": (self.creative_analyst, "创意解决方案"),
"data_specialist": (self.data_specialist, "数据驱动见解")
}
for agent_name, (agent, perspective) in agents.items():
try:
prompt = f"任务: {task}\n\n请从{perspective}的角度分析这个任务。"
response = agent.generate_reply([{"role": "user", "content": prompt}])
results[agent_name] = response if isinstance(response, str) else str(response)
except Exception as e:
results[agent_name] = f"智能体 {agent_name} 错误: {str(e)}"
return results
def run_comprehensive_analysis(self, query: str) -> Dict[str, Any]:
"""使用所有 Gemini 驱动的能力运行综合分析"""
results = {}
# Semantic Kernel 分析
analyses = ["text", "summary", "creative"]
for analysis_type in analyses:
try:
results[f"sk_{analysis_type}"] = self.analyze_with_semantic_kernel(query, analysis_type)
except Exception as e:
results[f"sk_{analysis_type}"] = f"错误: {str(e)}"
# 多智能体协作
try:
results["multi_agent"] = self.multi_agent_collaboration(query)
except Exception as e:
results["multi_agent"] = f"多智能体错误: {str(e)}"
# 直接 Gemini 调用
try:
results["direct_gemini"] = self.gemini.generate_response(
f"请对以下内容提供综合分析: {query}", temperature=0.6
)
except Exception as e:
results["direct_gemini"] = f"直接 Gemini 错误: {str(e)}"
return results
|