|
1 | 1 | from cat.mad_hatter.decorators import tool, hook, plugin |
2 | | -from pydantic import BaseModel |
3 | 2 | from datetime import datetime, date |
| 3 | +from cat.looking_glass.stray_cat import StrayCat |
| 4 | +from cat.log import log |
| 5 | +import os |
| 6 | +import sys |
4 | 7 |
|
5 | | -class MySettings(BaseModel): |
6 | | - required_int: int |
7 | | - optional_int: int = 69 |
8 | | - required_str: str |
9 | | - optional_str: str = "meow" |
10 | | - required_date: date |
11 | | - optional_date: date = 1679616000 |
| 8 | +sys.path.append(os.path.join(os.path.dirname(__file__))) |
12 | 9 |
|
13 | | -@plugin |
14 | | -def settings_model(): |
15 | | - return MySettings |
16 | | - |
17 | | -@tool |
18 | | -def get_the_day(tool_input, cat): |
19 | | - """Get the day of the week. Input is always None.""" |
| 10 | +from HissMed.retrieve_articles import PapersDownloader |
20 | 11 |
|
21 | | - dt = datetime.now() |
22 | 12 |
|
23 | | - return dt.strftime('%A') |
24 | | - |
25 | | -@hook |
26 | | -def before_cat_sends_message(message, cat): |
| 13 | +def settings_model(): |
| 14 | + settings = cat.mad_hatter.get_plugin().load_settings() |
| 15 | + return settings |
27 | 16 |
|
28 | | - prompt = f'Rephrase the following sentence in a grumpy way: {message["content"]}' |
29 | | - message["content"] = cat.llm(prompt) |
30 | 17 |
|
31 | | - return message |
| 18 | +@tool |
| 19 | +def hisscat_download_literature(user_message, cat): |
| 20 | + """ run this tool whenever the message starts with HissMed search""" |
| 21 | + # user_message = StrayCat.working_memory.user_message_json.text |
| 22 | + log.debug(f"User message received: {user_message}") # Log the user message |
| 23 | + # Check if the input matches the 'HissMed search: <query>' format |
| 24 | + if user_message.startswith("HissMed search: "): |
| 25 | + settings = settings_model() |
| 26 | + PapersDownloader.set_email(email=settings['email']) |
| 27 | + # Extract the query |
| 28 | + query = user_message[len("HissMed search: "):] |
| 29 | + # Print the query |
| 30 | + log.debug(f"Query received: {query}") |
| 31 | + PapersDownloader.run(query) |
| 32 | + return user_message |
0 commit comments