mirror of
https://github.com/ION606/ML-pipeline.git
synced 2026-05-14 21:06:54 +00:00
added rudamentary search and code execution
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import os
|
||||
import dotenv
|
||||
|
||||
from config import Config
|
||||
|
||||
dotenv.load_dotenv('./.env')
|
||||
|
||||
from langchain.tools import Tool
|
||||
from langchain_community.utilities import GoogleSerperAPIWrapper
|
||||
|
||||
# Set up the search tool
|
||||
search = GoogleSerperAPIWrapper(serper_api_key=os.getenv("SERPER_API_KEY"))
|
||||
tool = Tool(
|
||||
name="Web Search",
|
||||
func=search.run,
|
||||
description="Useful for finding real-time information on the web."
|
||||
)
|
||||
|
||||
|
||||
def perform_web_search(query: str):
|
||||
try:
|
||||
if not query or query.strip() == "" or query.strip().lower() == 'none':
|
||||
return ["", []]
|
||||
|
||||
results = tool.run(query.strip())
|
||||
if not results:
|
||||
return ["No web results found", []]
|
||||
|
||||
# Extract snippets and links from search results
|
||||
if 'organic' in results:
|
||||
snippets = "\n".join([f"{res['title']}: {res['snippet']}"
|
||||
for res in results['organic'][:Config.MAX_SEARCH_RESULTS]])
|
||||
links = [res['link'] for res in results['organic'][:Config.MAX_SEARCH_RESULTS]]
|
||||
return [snippets, links]
|
||||
return [str(results), []]
|
||||
except Exception as e:
|
||||
return [f"Search error: {str(e)}", []]
|
||||
Reference in New Issue
Block a user