You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.8 KiB
Python
64 lines
1.8 KiB
Python
|
6 months ago
|
# test_my_calculator.py
|
||
|
|
from dotenv import load_dotenv
|
||
|
|
from my_calculator_tool import create_calculator_registry
|
||
|
|
|
||
|
|
# 加载环境变量
|
||
|
|
load_dotenv()
|
||
|
|
|
||
|
|
def test_calculator_tool():
|
||
|
|
"""测试自定义计算器工具"""
|
||
|
|
|
||
|
|
# 创建包含计算器的注册表
|
||
|
|
registry = create_calculator_registry()
|
||
|
|
|
||
|
|
print("🧪 测试自定义计算器工具\n")
|
||
|
|
|
||
|
|
# 简单测试用例
|
||
|
|
test_cases = [
|
||
|
|
"2 + 3", # 基本加法
|
||
|
|
"10 - 4", # 基本减法
|
||
|
|
"5 * 6", # 基本乘法
|
||
|
|
"15 / 3", # 基本除法
|
||
|
|
"sqrt(16)", # 平方根
|
||
|
|
]
|
||
|
|
|
||
|
|
for i, expression in enumerate(test_cases, 1):
|
||
|
|
print(f"测试 {i}: {expression}")
|
||
|
|
result = registry.execute_tool("my_calculator", expression)
|
||
|
|
print(f"结果: {result}\n")
|
||
|
|
|
||
|
|
def test_with_simple_agent():
|
||
|
|
"""测试与SimpleAgent的集成"""
|
||
|
|
from hello_agents import HelloAgentsLLM
|
||
|
|
|
||
|
|
# 创建LLM客户端
|
||
|
|
llm = HelloAgentsLLM()
|
||
|
|
|
||
|
|
# 创建包含计算器的注册表
|
||
|
|
registry = create_calculator_registry()
|
||
|
|
|
||
|
|
print("🤖 与SimpleAgent集成测试:")
|
||
|
|
|
||
|
|
# 模拟SimpleAgent使用工具的场景
|
||
|
|
user_question = "请帮我计算 sqrt(16) + 2 * 3"
|
||
|
|
|
||
|
|
print(f"用户问题: {user_question}")
|
||
|
|
|
||
|
|
# 使用工具计算
|
||
|
|
calc_result = registry.execute_tool("my_calculator", "sqrt(16) + 2 * 3")
|
||
|
|
print(f"计算结果: {calc_result}")
|
||
|
|
|
||
|
|
# 构建最终回答
|
||
|
|
final_messages = [
|
||
|
|
{"role": "user", "content": f"计算结果是 {calc_result},请用自然语言回答用户的问题:{user_question}"}
|
||
|
|
]
|
||
|
|
|
||
|
|
print("\n🎯 SimpleAgent的回答:")
|
||
|
|
response = llm.think(final_messages)
|
||
|
|
for chunk in response:
|
||
|
|
print(chunk, end="", flush=True)
|
||
|
|
print("\n")
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
test_calculator_tool()
|
||
|
|
test_with_simple_agent()
|