import abc import sqlite3 from typing import Any import ast from langchain.tools import BaseTool class QueryTimerDB(BaseTool, abc.ABC): name: str = "QueryTimerDB" description: str = "用于查询所有日程,返回的数据里包含3个参数:时间、循环规则(如:'1000100'代表星期一和星期五循环,'0000000'代表不循环)、执行的事项" def __init__(self): super().__init__() async def _arun(self, *args: Any, **kwargs: Any) -> Any: # 用例中没有用到 arun 不予具体实现 pass def _run(self, para) -> str: conn = sqlite3.connect('timer.db') cursor = conn.cursor() # 执行查询 cursor.execute("SELECT * FROM timer") # 获取所有记录 rows = cursor.fetchall() # 拼接结果 result = "" for row in rows: result = result + str(row) + "\n" conn.commit() conn.close() return result if __name__ == "__main__": tool = QueryTimerDB() result = tool.run("") print(result)