salim4n's picture
Upload 5 files
c577353 verified
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)