python -m venv venv
source venv/bin/activatepython -m venv venv
.\venv\Scripts\activatepip install -r requirements.txtPrincipais dependências:
- smolagents[litellm,toolkit]
- pydantic
- ollama - para execução dos modelos localmente.
- beautifulsoup4 - para pesquisas na web.
- wikipedia api
RAG (Retrieval-Augmented Generation):
- chromadb - para conexão com o banco de dados vetorial
- sentence-transformers para criar o embeddings para o BD vetorial
- pandas
Servidor web:
- flask
- redis
- pydantic
Copie o arquivo .env.example para .env e altere os seus valores.
Os valores recomendados estão definidos no arquivo .env.example.
Recomendamos configurá-lo com docker com o seguinte comando:
docker compose up --build -dMas, também pode executá-lo diretamente do projeto, executando:
chroma run --host localhost --port 8000O agente de classificação espera que o banco de dados vetorial armazene os NCMs (Nomenclatura Comum do Mercosul) e EX (excessão) dos produtos. Assim, é necessário popular o BD com alguns dados relacionados ao NCM e EX.
Esses dados podem ser obtidos no site do Comércio Exterior COMEX. Em seguida, adicione os arquivos à pasta do projeto seguindo as seguintes regras:
- Os arquivos CSV devem ser colocados no diretório
database/datae serem nomeados:ncm.csvetipi.csv. - Os arquivos devem possuir codificação UTF-8 e separador vírgula (,).
- O arquivo
ncm.csvdeve possuir os seguintes campos com estes nomes:- CO_NCM: O código NCM
- NO_NCM_POR: A descrição em português
- NO_NCM_ING: A descrição em inglês
- O arquivo
tipi.csvdeve possuir os seguintes campos com estes nomes:- NCM: O código NCM
- EX: O código EX
Veja mais sobre esses dados em Algumas informações importantes.
E execute o seguinte comando:
python database/create.pyEsse programa irá criar os embeddings dos dados contidos no arquivo CSV e guardá-los em uma coleção no banco de dados vetorial.
- Campo de Embedding: A descrição do NCM em inglês será o campo utilizado para a pesquisa no BD. Deve ser a coluna 3 do CSV.
- Campos retornados: Após encontrar resultados, o BD irá retornar
- o código NCM
- o código EX
- a descrição do NCM em Português
python run.pyA aplicação invoca os agentes automaticamente, se desejar executar os agentes manualmente, vocẽ pode executar:
python agent_example.py- rodar docker.
- popular banco de dados vetorial
- testar banco de dados vetorial
A aplicação utiliza o banco de dados automaticamente, mas se desejar executar requisições contra o BD, você pode executar:
python databse/query.py