markqiu's picture
百度文心一言的例子
569cdb0
from __future__ import annotations
import asyncio
import json
import os
import unittest
from erniebot_agent.tools.calculator_tool import CalculatorTool
import erniebot
erniebot.api_type = "aistudio"
erniebot.access_token = os.environ["AISTUDIO_ACCESS_TOKEN"]
class TestCalculator(unittest.TestCase):
def setUp(self) -> None:
self.tool = CalculatorTool()
def run_query(self, query):
response = erniebot.ChatCompletion.create(
model="ernie-bot",
messages=[
{
"role": "user",
"content": query,
}
],
functions=[self.tool.function_call_schema()],
stream=False,
)
result = response.get_result()
if isinstance(result, str):
return result
assert result["name"] == "CalculatorTool"
arguments = json.loads(result["arguments"])
result = asyncio.run(self.tool(**arguments))
return result
def test_add(self):
result = self.run_query("3 加四等于多少")
self.assertEqual(result["formula_result"], 7)
def test_complex_formula(self):
result = self.run_query("3乘以五 再加10等于多少")
self.assertEqual(result["formula_result"], 25)