Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions acp-agents/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
## Ollama

# INFERENCE_BASE_URL=http://<MACHINE-IP>:11434/v1
# INFERENCE_API_KEY=YOUR-API-KEY
# INFERENCE_MODEL_NAME=openai/qwen3:8b

## watsonx.ai

INFERENCE_BASE_URL=https://us-south.ml.cloud.ibm.com
INFERENCE_API_KEY=
INFERENCE_MODEL_NAME=watsonx/meta-llama/llama-3-3-70b-instruct
INFERENCE_PROJECT_ID=
278 changes: 278 additions & 0 deletions acp-agents/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,278 @@
# This is to avoid Opencommit hook from getting pushed
prepare-commit-msg
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
qdrant_storage

.dspy_cache
# Mac
.DS_Store

# VSCode
.vscode/settings.json
.chroma
.ruff_cache

# PyCharm
.idea/

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
.testmondata*

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
*.db-shm
*.db-wal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Poetry
.testenv/*
langflow.db


.githooks/prepare-commit-msg
.langchain.db

# docusaurus
.docusaurus/

/tmp/*
src/backend/langflow/frontend/
src/backend/base/langflow/frontend/
.docker
scratchpad*
chroma*/*
stuff/*
src/frontend/playwright-report/index.html
*.bak
prof/*

src/frontend/temp
*-shm
*-wal
.history

.dspy_cache/
*.db
57 changes: 57 additions & 0 deletions acp-agents/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
PWD := $(shell pwd)
CONTAINER_COMPOSE_FILE = $(PWD)/container-compose.yml

.PHONY: start-podman
start-podman:
@echo "📦 Building container images"
podman-compose --file ${CONTAINER_COMPOSE_FILE} build --no-cache;
@echo "🚀 Starting containers"
podman-compose --file ${CONTAINER_COMPOSE_FILE} --project-name travel-agents up -d;

.PHONY: stop-podman
stop-podman:
podman-compose --file ${CONTAINER_COMPOSE_FILE} --project-name travel-agents down -v;

.PHONY: start-docker
start-docker:
@echo "📦 Building container images"
docker compose --file ${CONTAINER_COMPOSE_FILE} build;
@echo "🚀 Starting containers"
docker compose --file ${CONTAINER_COMPOSE_FILE} --project-name travel-agents up -d;

.PHONY: stop-docker
stop-docker:
docker compose --file ${CONTAINER_COMPOSE_FILE} --project-name travel-agents down -v;

.PHONY: check
check: ## Run code quality tools
@echo "🚀 Checking lock file consistency with 'pyproject.toml'"
@uv lock --locked
@echo "🚀 Linting code: Running pre-commit"
@uv run pre-commit run -a
@echo "🚀 Static type checking: Running mypy"
@uv run mypy agents/travel_concierge_agent
@uv run mypy agents/city_selection_agent
@uv run mypy agents/flight_planner_agent
@uv run mypy agents/hotel_planner_agent
@uv run mypy agents/city_expert_agent
@uv run mypy agents/itinerary_planner_agent

.PHONY: deploy-codeengine
deploy-codeengine:
@echo "📦 Deploy agents to Code Engine"
sh scripts/deploy.sh

.PHONY: undeploy-codeengine
undeploy-codeengine:
@echo "📦 Undeploy agents from Code Engine"
sh scripts/undeploy.sh



.PHONY: help
help:
@uv run python -c "import re; \
[[print(f'\033[36m{m[0]:<20}\033[0m {m[1]}') for m in re.findall(r'^([a-zA-Z_-]+):.*?## (.*)$$', open(makefile).read(), re.M)] for makefile in ('$(MAKEFILE_LIST)').strip().split()]"

.DEFAULT_GOAL := help
Loading