mirror of
https://github.com/xszyou/Fay.git
synced 2026-11-03 21:01:28 +08:00
更换ReAct agent✓ 修复Thread.timer管理逻辑✓ 优化提示词减小返回格式出错概率(格式出错会导致重复执行)✓ 消息窗里加上执行任务标记✓ 更换gpt 3.5模型测试✓
42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
import abc
|
|
import sqlite3
|
|
from typing import Any
|
|
import ast
|
|
|
|
|
|
from langchain.tools import BaseTool
|
|
|
|
|
|
class QueryTimerDB(BaseTool, abc.ABC):
|
|
name = "QueryTimerDB"
|
|
description = "用于查询所有定时任务,返回的数据里包含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)
|