context-ai / what_can_i_do.py
chinmayjha's picture
Fix what_can_i_do tool: convert to proper Tool class
a3859a8
raw
history blame
2.31 kB
import opik
from smolagents import Tool
class WhatCanIDoTool(Tool):
name = "what_can_i_do"
description = """Returns a comprehensive list of available capabilities and topics in the Second Brain system.
This tool should be used when:
- The user explicitly asks what the system can do
- The user asks about available features or capabilities
- The user seems unsure about what questions they can ask
- The user wants to explore the system's knowledge areas
This tool should NOT be used when:
- The user asks a specific technical question
- The user already knows what they want to learn about
- The question is about a specific topic covered in the knowledge base"""
inputs = {
"question": {
"type": "string",
"description": "The user's query about system capabilities. While this parameter is required, the function returns a standard capability list regardless of the specific question."
}
}
output_type = "string"
@opik.track(name="what_can_i_do")
def forward(self, question: str) -> str:
"""Returns a comprehensive list of available capabilities and topics in the Second Brain system."""
return """
You can ask questions about the content in your Second Brain, such as:
Architecture and Systems:
- What is the feature/training/inference (FTI) architecture?
- How do agentic systems work?
- Detail how does agent memory work in agentic applications?
LLM Technology:
- What are LLMs?
- What is BERT (Bidirectional Encoder Representations from Transformers)?
- Detail how does RLHF (Reinforcement Learning from Human Feedback) work?
- What are the top LLM frameworks for building applications?
- Write me a paragraph on how can I optimize LLMs during inference?
RAG and Document Processing:
- What tools are available for processing PDFs for LLMs and RAG?
- What's the difference between vector databases and vector indices?
- How does document chunk overlap affect RAG performance?
- What is chunk reranking and why is it important?
- What are advanced RAG techniques for optimization?
- How can RAG pipelines be evaluated?
Learning Resources:
- Can you recommend courses on LLMs and RAG?
"""
# Create an instance for backward compatibility
what_can_i_do = WhatCanIDoTool()