AkylaiBva's picture
Update tools.py
7d81296 verified
"""
web_search: searches the web
wiki_search: searches Wikipedia
python_repl: python code interpreter
get_youtube_transcript: retrieves the transcript of a YouTube video
speech_recognition: transcribes an audio file
reverse_string: reverses the character order of the input string
query_image: analyzes a given image
query_video: analyzes a given video
| Q# | Tool | Description |
| -- | ------------------------ | ---------------------------------------- |
| 1 | `wiki_search` | Wikipedia album count |
| 2 | `get_youtube_transcript` | Analyze bird count from video transcript |
| 3 | `reverse_string` | Reverse logic |
| 4 | `query_image` | Chess image analysis |
| 5 | `wiki_search` | Featured article nomination |
| 6 | `python_repl` | Commutativity checker |
| 7 | `get_youtube_transcript` | Dialogue from YouTube |
| 8 | `wiki_search` | LibreText content |
| 9 | `python_repl` | Filter botanical vegetables |
| 10 | `speech_recognition` | Extract ingredients from audio |
| 11 | `web_search` | Actor roles in two shows |
| 12 | `python_repl` | Run Python code |
| 13 | `web_search` | Baseball stats lookup |
| 14 | `speech_recognition` | Page numbers from professor's voice |
| 15 | `web_search` | NASA grant lookup |
| 16 | `wiki_search` | Location in paper |
| 17 | `wiki_search` | Olympic data |
| 18 | `web_search` | Baseball jersey lookup |
| 19 | `python_repl` | Sum Excel column |
| 20 | `wiki_search` | Malko competition history |
"""
import wikipedia
import requests
import speech_recognition as sr
from pytube import YouTube
import openpyxl
import re
from PIL import Image
from smolagents import DuckDuckGoSearchTool
from huggingface_hub import snapshot_download
from transformers import AutoTokenizer, AutoModelForCausalLM
def web_search(query, max_results=3):
searchtool = DuckDuckGoSearchTool(query)
result = searchtool(query)
return result
def wiki_search(query):
#wikipedia.set_lang("en")
#return wikipedia.summary(query, sentences=5)
local_dir = snapshot_download("tiiuae/falcon-7b-instruct", local_dir="/home/user/.cache", use_auth_token=False)
tokenizer = AutoTokenizer.from_pretrained(local_dir)
model = AutoModelForCausalLM.from_pretrained(local_dir)
chat = pipeline("text-generation", model=model, tokenizer=tokenizer)
response = chat(query, max_new_tokens=50)
return response[0]['generated_text']
def python_repl(code):
code = "AkylaiBva/Final_Assignment_Template_AB/"+code
print(code)
try:
local_vars = {}
exec(code, {}, local_vars)
return str(local_vars)
except Exception as e:
return str(e)
def get_youtube_transcript(url):
print(url)
from youtube_transcript_api import YouTubeTranscriptApi
video_id = url.split("v=")[-1]
transcript = YouTubeTranscriptApi.get_transcript(video_id)
return transcript
def speech_recognition(path):
path = "AkylaiBva/Final_Assignment_Template_AB/"+ path
print(path)
r = sr.Recognizer()
with sr.AudioFile(path) as source:
audio = r.record(source)
return r.recognize_google(audio)
def reverse_string(s):
return s[::-1]
def query_image(path):
path = "AkylaiBva/Final_Assignment_Template_AB/"+ path
print(path)
import easyocr
reader = easyocr.Reader(['en']) # Add 'ru', 'tr', etc. if needed
result = reader.readtext('image.jpg')
text = ""
for bbox, text, confidence in result:
text += f"{text} (confidence: {confidence})"
return text
def query_video(path):
path = "AkylaiBva/Final_Assignment_Template_AB/"+path
print(path)
return "Video analysis not implemented yet"