-
Notifications
You must be signed in to change notification settings - Fork 24
/
compose.yml
129 lines (126 loc) · 3.92 KB
/
compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# Docker compose file that allows each of the services we require to start
# only when their dependent service(s) have started. This is achieved through
# the use of a docker healthcheck for each service.
# First, construct private network for our services to communicate with each other
networks:
network:
driver: bridge
services:
# neo4j service
neo4j-db:
image: neo4j:latest
networks:
- network
environment:
NEO4J_AUTH: ${NEO4J_USERNAME}/${NEO4J_PASSWORD}
NEO4J_PLUGINS: '["apoc"]'
NEO4J_ACCEPT_LICENSE_AGREEMENT: yes
NEO4J_apoc_export_file_enabled: true
NEO4J_apoc_import_file_enabled: true
NEO4J_apoc_import_file_use__neo4j__config: true
NEO4J_dbms_security_procedures_allowlist: jwt.security.*, gds.*, apoc.*
NEO4J_dbms_security_procedures_unrestricted: gds.*, apoc.*
# network ports, we can customise exposed ports so that we
# don't conflict with other neo4j instances that may be running.
# if none are provided, we revert to defaults.
ports:
- ${NEO4J_HTTP_PORT:-7474}:7474 # HTTP for Neo4j Browser
- ${NEO4J_BOLT_PORT:-7687}:7687 # Bolt port
expose:
- ${NEO4J_HTTP_PORT:-7474}
- ${NEO4J_BOLT_PORT:-7687}
healthcheck:
test: wget http://neo4j-db:7474 || exit 1
interval: 60s
timeout: 10s
retries: 5
start_interval: 5s
start_period: 60s
# InferGPT Backend
backend:
env_file:
- .env
image: infergpt/backend
build:
context: backend
dockerfile: ./Dockerfile
volumes:
- ./${FILES_DIRECTORY}:/app/${FILES_DIRECTORY}
environment:
NEO4J_URI: bolt://neo4j-db:7687
NEO4J_USERNAME: ${NEO4J_USERNAME}
NEO4J_PASSWORD: ${NEO4J_PASSWORD}
MISTRAL_KEY: ${MISTRAL_KEY}
OPENAI_KEY: ${OPENAI_KEY}
FRONTEND_URL: ${FRONTEND_URL}
FILES_DIRECTORY: ${FILES_DIRECTORY}
AZURE_STORAGE_CONNECTION_STRING: ${AZURE_STORAGE_CONNECTION_STRING}
AZURE_STORAGE_CONTAINER_NAME: ${AZURE_STORAGE_CONTAINER_NAME}
AZURE_INITIAL_DATA_FILENAME: ${AZURE_INITIAL_DATA_FILENAME}
ANSWER_AGENT_LLM: ${ANSWER_AGENT_LLM}
INTENT_AGENT_LLM: ${INTENT_AGENT_LLM}
VALIDATOR_AGENT_LLM: ${VALIDATOR_AGENT_LLM}
DATASTORE_AGENT_LLM: ${DATASTORE_AGENT_LLM}
WEB_AGENT_LLM: ${WEB_AGENT_LLM}
MATHS_AGENT_LLM: ${MATHS_AGENT_LLM}
ROUTER_LLM: ${ROUTER_LLM}
CHART_GENERATOR_LLM: ${CHART_GENERATOR_LLM}
FILE_AGENT_LLM: ${FILE_AGENT_LLM}
ANSWER_AGENT_MODEL: ${ANSWER_AGENT_MODEL}
INTENT_AGENT_MODEL: ${INTENT_AGENT_MODEL}
VALIDATOR_AGENT_MODEL: ${VALIDATOR_AGENT_MODEL}
DATASTORE_AGENT_MODEL: ${DATASTORE_AGENT_MODEL}
WEB_AGENT_MODEL: ${WEB_AGENT_MODEL}
ROUTER_MODEL: ${ROUTER_MODEL}
MATHS_AGENT_MODEL: ${MATHS_AGENT_MODEL}
AGENT_CLASS_MODEL: ${AGENT_CLASS_MODEL}
CHART_GENERATOR_MODEL: ${CHART_GENERATOR_MODEL}
FILE_AGENT_MODEL: ${FILE_AGENT_MODEL}
depends_on:
neo4j-db:
condition: service_healthy
networks:
- network
ports:
- 8250:8250
healthcheck:
test: wget http://backend:8250/health || exit 1
interval: 60s
timeout: 10s
retries: 5
start_interval: 5s
start_period: 60s
develop:
watch:
- path: backend
action: rebuild
- path: backend
target: /backend
action: sync
# InferGPT Frontend
frontend:
image: infergpt/frontend
build:
context: frontend
dockerfile: ./Dockerfile
environment:
BACKEND_URL: ${BACKEND_URL}
WS_URL: ${WS_URL}
depends_on:
backend:
condition: service_healthy
networks:
- network
ports:
- 8650:8650
expose:
- 8650
develop:
watch:
- path: frontend/package.json
action: rebuild
- path: frontend/package-lock.json
action: rebuild
- path: frontend
target: /app
action: sync