Spaces:
Sleeping
Sleeping
File size: 1,579 Bytes
50ae8da 43761d3 50ae8da 43761d3 50ae8da 43761d3 50ae8da 43761d3 |
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 43 44 |
# --- Base Agent with file support ---
class FileAwareAgent:
"""
Minimal base that accepts a question and an optional file_path.
Subclasses can override `answer` to implement custom logic.
"""
def __call__(self, question: str, file_path: str | None = None) -> str:
preview = question[:50] if isinstance(question, str) else str(question)[:50]
print(f"Agent received question (first 50 chars): {preview}...")
if file_path:
print(f"Agent received file_path: {file_path}")
fixed_answer = self.answer(question, file_path)
print(f"Agent returning answer: {fixed_answer}")
return fixed_answer
def answer(self, question: str, file_path: str | None = None) -> str:
raise NotImplementedError
# --- Basic Agent Definition ---
class BasicAgent(FileAwareAgent):
def __init__(self):
print("BasicAgent initialized.")
def answer(self, question: str, file_path: str | None = None) -> str:
# Placeholder logic; replace with real solution strategy.
return "This is a default answer."
class LangAgent(FileAwareAgent):
def __init__(self):
print("LangAgent initialized.")
def answer(self, question: str, file_path: str | None = None) -> str:
# Placeholder logic; replace with language-model-based solution.
if file_path:
# Keep the intent (point to the file) but fix formatting.
return f"To answer this question I should read this file: {file_path}"
else:
return "This is a default answer."
|