Spaces:
Sleeping
Sleeping
from smolagents import CodeAgent, HfApiModel | |
from sql_data import sql_query, get_schema | |
from sqlalchemy import create_engine, inspect, text | |
import os | |
from dotenv import load_dotenv | |
from typing import Dict, List, Any | |
import json | |
# Load environment variables | |
load_dotenv() | |
# Example queries that the agent can handle | |
EXAMPLE_QUERIES = [ | |
"Quels sont les tarifs moyens des conteneurs 20ft et 40ft entre tous les ports ?", | |
"Quels sont les ports d'origine les plus fréquents ?", | |
"Montre-moi les routes avec des tarifs élevés pour les conteneurs 40ft", | |
"Quelle est l'évolution des prix au fil du temps pour la route Surabaya vers Nansha ?", | |
"Quelles sont les destinations disponibles depuis Shanghai ?", | |
] | |
class FreightAgent: | |
def __init__(self): | |
self.setup_agent() | |
def setup_agent(self) -> None: | |
""" | |
Initialize the CodeAgent with SQL tools. | |
Create a CodeAgent with two tools: `sql_query` and `get_schema`. | |
`sql_query` allows to perform SQL queries on the freights table. | |
`get_schema` returns the schema of the freights table. | |
""" | |
self.agent = CodeAgent( | |
tools=[sql_query, get_schema], | |
model=HfApiModel("meta-llama/Llama-3.1-8B-Instruct"), | |
) | |
def query(self, question: str) -> str: | |
""" | |
Ask a question about the freight data in natural language | |
""" | |
return self.agent.run(question) | |