dawid-lorek's picture
Update agent.py
ed680f1 verified
raw
history blame
1.62 kB
from smolagents import LiteLLMModel, CodeAgent, DuckDuckGoSearchTool, VisitWebpageTool, PythonInterpreterTool, tool
from youtube_transcript_api import YouTubeTranscriptApi
import os
@tool
def reverse_sentence_tool(reverse_sentence: str) -> str:
inverted_words = reverse_sentence.split(" ")[::-1]
correct_words = [word[::-1] for word in inverted_words]
return " ".join(correct_words)
@tool
def get_youtube_transcript(video_url: str) -> str:
video_id = video_url.split("v=")[-1]
transcript = YouTubeTranscriptApi.get_transcript(video_id)
full_text = " ".join([entry['text'] for entry in transcript])
return full_text
@tool
def check_answer(answer: str) -> str:
if answer and answer[-1] == '.':
answer = answer[:-1]
if "St." in answer:
answer = answer.replace("St.", "Saint")
return answer
class BasicAgent:
def __init__(self):
api_key = os.environ.get("OPENAI_API_KEY", "")
# Użyj modelu openai, np. gpt-4o lub gpt-3.5-turbo
self.model = LiteLLMModel(model_id="gpt-4o", api_key=api_key)
self.agent = CodeAgent(
tools=[
DuckDuckGoSearchTool(),
PythonInterpreterTool(),
VisitWebpageTool(),
reverse_sentence_tool,
get_youtube_transcript,
check_answer
],
model=self.model
)
print("BasicAgent initialized.")
def __call__(self, question: str) -> str:
print(f"Agent received question: {question[:50]}...")
answer = self.agent.run(question)
return answer