File size: 1,688 Bytes
b28635c
20d720d
c5514db
b28635c
6d99a60
b73fa18
20d720d
c537b15
f130374
 
d39c478
c5514db
20d720d
f130374
c5514db
d0f6de1
f130374
 
20d720d
c537b15
f130374
 
d39c478
c537b15
f130374
d0f6de1
f130374
20d720d
c537b15
f130374
 
d39c478
c537b15
f130374
d0f6de1
f130374
c537b15
 
 
 
 
f130374
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#from .base_tool import BaseTool
from utils.knowledge_base import KnowledgeBase
from pydantic import  PrivateAttr
from crewai.tools import BaseTool



class SearchKnowledgeTool(BaseTool):
    name: str = "search_knowledge"
    description: str = "Search self-help or spiritual wisdom."
    model_config = {"arbitrary_types_allowed": True}
    _kp: KnowledgeBase = PrivateAttr()
    def __init__(self, config=None):
        super().__init__()
        self._kb = KnowledgeBase(config)
    def _run(self, query: str, k: int = 5):
        return self.kb.search(query, k=k) if self.kb.is_initialized() else \
            [{"text": "General wisdom", "score": 1.0}]

class ExtractWisdomTool(BaseTool):
    name: str = "extract_wisdom"
    description: str = "Extract most relevant wisdom for a given query."
    model_config = {"arbitrary_types_allowed": True}
    def __init__(self, config=None):
        super().__init__()
    def _run(self, search_results: list, user_context: dict):
        return search_results[:3]

class SuggestPracticesTool(BaseTool):
    name: str = "suggest_practices"
    description: str = "Recommend meditations or self-care practices."
    model_config = {"arbitrary_types_allowed": True}
    def __init__(self, config=None):
        super().__init__()
    def _run(self, emotional_state: str, cultural_context: str = None):
        return {"name": "Mindful Breathing", "description": "Focus on your breath to calm the mind."}

class KnowledgeTools:
    def __init__(self, config=None):
        self.search_knowledge = SearchKnowledgeTool(config)
        self.extract_wisdom = ExtractWisdomTool(config)
        self.suggest_practices = SuggestPracticesTool(config)