olivebot/agent/tools/MyTimer.py
xszyou 875ed28b58 初始上传
初始上传
2023-12-12 00:03:36 +08:00

36 lines
1.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import abc
import sqlite3
from typing import Any
import ast
from langchain.tools import BaseTool
class MyTimer(BaseTool, abc.ABC):
name = "MyTimer"
description = "用于设置定时任务,每次调用只可以设置一次定时任务.使用的时候需要接受3个参数第1个参数是时间,第2个参数是循环规则如:'1000100'代表星期一和星期五循环,'0000000'代表不循环第3个参数代表要执行的事项,如:('15:15', '0000001', '提醒主人叫咖啡')"
def __init__(self):
super().__init__()
async def _arun(self, *args: Any, **kwargs: Any) -> Any:
# 用例中没有用到 arun 不予具体实现
pass
def _run(self, para) -> str:
para = ast.literal_eval(para)
conn = sqlite3.connect('timer.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO timer (time, repeat_rule, content) VALUES (?, ?, ?)", (para[0], para[1], para[2]))
conn.commit()
conn.close()
return "定时任务设置成功"
if __name__ == "__main__":
calculator_tool = MyTimer()
result = calculator_tool.run("sqrt(2) + 3")
print(result)