Integrates the chat UI with the conversation layer router.
Key changes:
- Added new environment variables (`CONVERSATION_LAYER_ROUTER_URL` for the API and `VITE_CONVERSATION_LAYER_ROUTER_URL` for the UI) to specify the router's URL. These have been configured in `docker-compose.yml`, `api/.env.example`, and `ui/runtime-env.sh`.
- Modified `ui/src/stores/useChat.js`:
- Introduced a `sendMessage` action that constructs a message object (as per the specified format with `id`, `from`, `to`, `ts`, `type`, `text`, `meta`) and sends it to the conversation router.
- Implemented optimistic local display of your message.
- Handles the `Conversation` object returned by the router, iterating through its `messages` array and adding them to the chat display.
- Determines message ownership ('user' for UI messages, 'bot' for Nucleo messages) for appropriate rendering.
- Includes basic error handling for API requests, logging errors and showing system messages in the chat.
- Updated `ui/src/components/chat/CanvasChat.vue`:
- Modified the message sending mechanism to use the new `chat.sendMessage()` action.
- Adjusted message rendering to correctly differentiate between messages from 'user' and 'bot' based on the `owner` field from the chat store.
This allows the UI to send messages to the conversation router and display the resulting conversation, focusing on rendering messages from both the UI ('planilla-UI') and the bot ('Nucleo').
98 lines
2.3 KiB
YAML
98 lines
2.3 KiB
YAML
version: "3.8"
|
|
|
|
services:
|
|
agent:
|
|
container_name: planilla-agent
|
|
image: gitea.interno.com/nucleo000/planilla-agent:latest
|
|
build: ./agent
|
|
|
|
environment:
|
|
- PORT=8012
|
|
- GEMINI_API_KEY= AIzaSyA9fI1mron-NVgghygu7B4sco7t6raXB8M
|
|
- MCP_URL= http:planilla-mcp:5000/mcp
|
|
|
|
restart: unless-stopped
|
|
networks: [planilla, principal]
|
|
|
|
api:
|
|
container_name: planilla-api
|
|
image: gitea.interno.com/nucleo000/planilla-api:latest
|
|
build: ./api
|
|
restart: unless-stopped
|
|
environment:
|
|
DATABASE_URL: "postgresql://planilla:secret@db:5432/planilla_db?schema=public"
|
|
CONVERSATION_LAYER_ROUTER_URL: 'http://your-router-url:port'
|
|
depends_on:
|
|
- db
|
|
ports:
|
|
- "3009:4000"
|
|
networks: [planilla, principal]
|
|
|
|
ui:
|
|
container_name: planilla-ui
|
|
image: gitea.interno.com/nucleo000/planilla-ui:latest
|
|
build: ./ui
|
|
environment:
|
|
VITE_API_EVENTS_URL: https://planilla.interno.com/events
|
|
VITE_API_DB_URL: https://planilla.interno.com
|
|
VITE_CONVERSATION_LAYER_ROUTER_URL: 'http://your-router-url:port'
|
|
ports:
|
|
- "3008:80"
|
|
networks: [planilla, principal]
|
|
|
|
worker:
|
|
image: gitea.interno.com/nucleo000/planilla-worker:latest
|
|
build: ./worker
|
|
restart: unless-stopped
|
|
environment:
|
|
DATABASE_URL: "postgresql://planilla:secret@db:5432/planilla_db?schema=public"
|
|
depends_on:
|
|
- db
|
|
networks: [planilla]
|
|
|
|
mcp:
|
|
container_name: planilla-mcp
|
|
image: gitea.interno.com/nucleo000/planilla-mcp:latest
|
|
build: ./mcp
|
|
restart: unless-stopped
|
|
environment:
|
|
PLANILLA_API_URL: "http://planilla-api:4000"
|
|
depends_on:
|
|
- api
|
|
ports:
|
|
- "5010:5000"
|
|
networks: [planilla, principal]
|
|
|
|
db:
|
|
image: postgres:16
|
|
environment:
|
|
POSTGRES_DB: planilla_db
|
|
POSTGRES_USER: planilla
|
|
POSTGRES_PASSWORD: secret
|
|
volumes:
|
|
- /srv/planilla/db:/var/lib/postgresql/data
|
|
networks: [planilla]
|
|
|
|
pgadmin:
|
|
image: dpage/pgadmin4
|
|
environment:
|
|
PGADMIN_DEFAULT_EMAIL: planilla@planilla.com
|
|
PGADMIN_DEFAULT_PASSWORD: planilla
|
|
ports:
|
|
- "5050:80"
|
|
depends_on:
|
|
- db
|
|
volumes:
|
|
- /srv/planilla/pgadmin:/var/lib/pgadmin
|
|
user: "5050:5050"
|
|
networks: [planilla]
|
|
|
|
volumes:
|
|
db_data:
|
|
|
|
networks:
|
|
planilla:
|
|
principal:
|
|
external: true
|
|
|