You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
2026-01-08 18:12:44.879 | start gunicorn with --workers 3 --timeout 240 --max-requests 2000 --max-requests-jitter 5 --graceful-timeout 60
2026-01-08 18:12:45.034 | [2026-01-08 12:12:45 +0000] [10] [INFO] Starting gunicorn 23.0.0
2026-01-08 18:12:45.034 | [2026-01-08 12:12:45 +0000] [10] [INFO] Listening at: http://0.0.0.0:8000 (10)
2026-01-08 18:12:45.035 | [2026-01-08 12:12:45 +0000] [10] [INFO] Using worker: uvicorn.workers.UvicornWorker
2026-01-08 18:12:45.042 | [2026-01-08 12:12:45 +0000] [17] [INFO] Booting worker with pid: 17
2026-01-08 18:12:45.079 | [2026-01-08 12:12:45 +0000] [22] [INFO] Booting worker with pid: 22
2026-01-08 18:12:45.143 | [2026-01-08 12:12:45 +0000] [23] [INFO] Booting worker with pid: 23
2026-01-08 18:12:45.348 | info: Tiledek Trainer Jobworker started!
2026-01-08 18:12:45.364 | info: (trainer-worker) GPTKEY retrieved
2026-01-08 18:12:45.365 | info: (trainer-worker) Initialized JobManager with TOPIC tiledesk-trainer on amqp://ignored:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3NjMwYTAwZS0xNTUxLTQ3Y2ItYmEzMC02NGRlNjJmYmNmNGYiLCJzdWIiOiIwMS1PQlNFUlZFUiIsInNjb3BlIjpbInJhYmJpdG1xLnJlYWQ6Ki8qLyoiLCJyYWJiaXRtcS53cml0ZToqLyovKiIsInJhYmJpdG1xLmNvbmZpZ3VyZToqLyovKiJdLCJjbGllbnRfaWQiOiIwMS1PQlNFUlZFUiIsImNpZCI6IjAxLU9CU0VSVkVSIiwiYXpwIjoiMDEtT0JTRVJWRVIiLCJ1c2VyX2lkIjoiMDEtT0JTRVJWRVIiLCJhcHBfaWQiOiJ0aWxlY2hhdCIsImlhdCI6MTY5NjQ5MjI4NywiZXhwIjoyMDA3NTMyMjg3LCJhdWQiOlsicmFiYml0bXEiLCIwMS1PQlNFUlZFUiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJ1c2VyIn0.Lq0MLTYny7tIYVQ-KEDLlL-h7gAqofCfC2IDgI_0TOE@rabbitmq:5672?heartbeat=60
2026-01-08 18:12:45.365 | [JobWorker] JobManager worker started
2026-01-08 18:12:45.372 | Tiledesk Trainer Worker Container listening on port 3009
2026-01-08 18:12:45.386 | info: (trainer-worker) Mongoose DB Connected
2026-01-08 18:12:50.769 | /usr/local/lib/python3.12/site-packages/langchain_pinecone/init.py:3: LangChainDeprecationWarning: As of langchain-core 0.3.0, LangChain uses pydantic v2 internally. The langchain_core.pydantic_v1 module was a compatibility shim for pydantic v1, and should no longer be used. Please update the code to import from Pydantic directly.
2026-01-08 18:12:50.769 |
2026-01-08 18:12:50.769 | For example, replace imports like:
from langchain_core.pydantic_v1 import BaseModel2026-01-08 18:12:50.769 | with:
from pydantic import BaseModel2026-01-08 18:12:50.769 | or the v1 compatibility namespace if you are working in a code base that has not been fully upgraded to pydantic 2 yet. from pydantic.v1 import BaseModel
2026-01-08 18:12:50.769 |
2026-01-08 18:12:50.769 | from langchain_pinecone.vectorstores import Pinecone, PineconeVectorStore
2026-01-08 18:12:50.769 | /usr/local/lib/python3.12/site-packages/langchain_pinecone/init.py:3: LangChainDeprecationWarning: As of langchain-core 0.3.0, LangChain uses pydantic v2 internally. The langchain_core.pydantic_v1 module was a compatibility shim for pydantic v1, and should no longer be used. Please update the code to import from Pydantic directly.
2026-01-08 18:12:50.769 |
2026-01-08 18:12:50.769 | For example, replace imports like:
from langchain_core.pydantic_v1 import BaseModel2026-01-08 18:12:50.769 | with:
from pydantic import BaseModel2026-01-08 18:12:50.769 | or the v1 compatibility namespace if you are working in a code base that has not been fully upgraded to pydantic 2 yet. from pydantic.v1 import BaseModel
2026-01-08 18:12:50.769 |
2026-01-08 18:12:50.769 | from langchain_pinecone.vectorstores import Pinecone, PineconeVectorStore
2026-01-08 18:12:50.951 | /usr/local/lib/python3.12/site-packages/langchain_pinecone/init.py:3: LangChainDeprecationWarning: As of langchain-core 0.3.0, LangChain uses pydantic v2 internally. The langchain_core.pydantic_v1 module was a compatibility shim for pydantic v1, and should no longer be used. Please update the code to import from Pydantic directly.
2026-01-08 18:12:50.951 |
2026-01-08 18:12:50.951 | For example, replace imports like:
from langchain_core.pydantic_v1 import BaseModel2026-01-08 18:12:50.951 | with:
from pydantic import BaseModel2026-01-08 18:12:50.951 | or the v1 compatibility namespace if you are working in a code base that has not been fully upgraded to pydantic 2 yet. from pydantic.v1 import BaseModel
2026-01-08 18:12:50.951 |
2026-01-08 18:12:50.951 | from langchain_pinecone.vectorstores import Pinecone, PineconeVectorStore
2026-01-08 18:12:53.225 | [2026-01-08 12:12:53 +0000] [22] [INFO] Started server process [22]
2026-01-08 18:12:53.225 | [2026-01-08 12:12:53 +0000] [22] [INFO] Waiting for application startup.
2026-01-08 18:12:53.227 | [2026-01-08 12:12:53 +0000] [22] [INFO] Application startup complete.
2026-01-08 18:12:53.308 | [2026-01-08 12:12:53 +0000] [17] [INFO] Started server process [17]
2026-01-08 18:12:53.308 | [2026-01-08 12:12:53 +0000] [17] [INFO] Waiting for application startup.
2026-01-08 18:12:53.309 | [2026-01-08 12:12:53 +0000] [17] [INFO] Application startup complete.
2026-01-08 18:12:53.346 | [2026-01-08 12:12:53 +0000] [23] [INFO] Started server process [23]
2026-01-08 18:12:53.346 | [2026-01-08 12:12:53 +0000] [23] [INFO] Waiting for application startup.
2026-01-08 18:12:53.348 | [2026-01-08 12:12:53 +0000] [23] [INFO] Application startup complete.
2026-01-08 18:14:25.289 | Validazione dopo l'inizializzazione del modello: nomic-embed-text con provider EmbeddingProviders.OLLAMA
2026-01-08 18:14:25.289 | 2026-01-08 12:14:25,289 - tilellm.main - INFO - webhook: http://server:3000/api/webhook/kb/status, token: kbcustomtoken
2026-01-08 18:14:25.289 | 2026-01-08 12:14:25,289 - tilellm.shared.utility - INFO - Engine name: qdrant
2026-01-08 18:14:25.289 | 2026-01-08 12:14:25,289 - GlobalCache - INFO - Creazione nuovo oggetto repository/('qdrant', 'qdrant')
2026-01-08 18:14:25.289 | 2026-01-08 12:14:25,289 - tilellm.shared.utility - INFO - Creazione async nuovo oggetto Repository: ('qdrant', 'qdrant')
2026-01-08 18:14:25.289 | 2026-01-08 12:14:25,289 - tilellm.shared.utility - INFO - Injecting QdrantRepository (async)
2026-01-08 18:14:26.002 | 2026-01-08 12:14:26,002 - tilellm.shared.utility - INFO - Creato async QdrantRepository con chiave: ('qdrant', 'qdrant')
2026-01-08 18:14:26.002 | 2026-01-08 12:14:26,002 - tilellm.shared.embeddings.embedding_client_manager - INFO - CachedAsyncEmbeddingFactory initialized
2026-01-08 18:14:26.002 | 2026-01-08 12:14:26,002 - GlobalCache - INFO - Creazione nuovo oggetto embedding/(<EmbeddingProviders.OLLAMA: 'ollama'>, 'nomic-embed-text')
2026-01-08 18:14:26.002 | 2026-01-08 12:14:26,002 - tilellm.shared.embeddings.embedding_client_manager - INFO - Creating new cached embedding for EmbeddingProviders.OLLAMA
2026-01-08 18:14:26.013 | 2026-01-08 12:14:26,013 - tilellm.store.qdrant.qdrant_repository_local - INFO - id='695f9fa1030c746c317bb6d7' source='/api/files?path=uploads/users/695d0c7c8a92ad0013d6ca6f/files/ec6e76be-88b0-4e73-8bd3-39ae908d4160/Different%20Ideas%20for%20Tariff%20Module.docx' type='docx' content='' hybrid=False hybrid_batch_size=10 sparse_encoder='splade' gptkey=SecretStr('**********') scrape_type=0 embedding=LlmEmbeddingModel(provider=<EmbeddingProviders.OLLAMA: 'ollama'>, name='nomic-embed-text', api_key=None, url='', dimension=768) browser_headers={'user-agent': 'Mozilla/5.0 AppleWebKit/537.36 Chrome/128.0.0.0 Safari/537.36'} namespace='695d0c7d8a92ad0013d6cabb' webhook='http://server:3000/api/webhook/kb/status?token=kbcustomtoken' semantic_chunk=False breakpoint_threshold_type='percentile' chunk_size=1000 chunk_overlap=400 parameters_scrape_type_4=None engine=Engine(name='qdrant', type='serverless', apikey=SecretStr(''), vector_size=768, index_name='tiledesk-llm', text_key='text', metric='cosine', host='qdrant', port=6333, deployment='local')
2026-01-08 18:14:26.013 | 2026-01-08 12:14:26,013 - GlobalCache - INFO - Creazione nuovo oggetto qdrant_vector_store_wrapper/('qdrant', 6333, 'tiledesk-llm', '')
2026-01-08 18:14:26.013 | 2026-01-08 12:14:26,013 - tilellm.store.qdrant.qdrant_repository_local - INFO - Creazione del wrapper cached vector store per la collection: tiledesk-llm
2026-01-08 18:14:26.013 | 2026-01-08 12:14:26,013 - tilellm.store.qdrant.qdrant_repository_local - INFO - Creazione di un nuovo client AsyncQdrantClient per l'host: qdrant
2026-01-08 18:14:26.243 | 2026-01-08 12:14:26,243 - httpx - INFO - HTTP Request: GET http://qdrant:6333 "HTTP/1.1 200 OK"
2026-01-08 18:14:26.246 | 2026-01-08 12:14:26,246 - httpx - INFO - HTTP Request: GET http://qdrant:6333/collections/tiledesk-llm "HTTP/1.1 200 OK"
2026-01-08 18:14:26.248 | 2026-01-08 12:14:26,248 - httpx - INFO - HTTP Request: GET http://qdrant:6333/collections/tiledesk-llm "HTTP/1.1 200 OK"
2026-01-08 18:14:26.249 | 2026-01-08 12:14:26,249 - httpx - INFO - HTTP Request: GET http://qdrant:6333/collections/tiledesk-llm "HTTP/1.1 200 OK"
2026-01-08 18:14:26.661 | 2026-01-08 12:14:26,661 - httpx - INFO - HTTP Request: POST http://ollama:11434/api/embed "HTTP/1.1 200 OK"
2026-01-08 18:14:26.691 | 2026-01-08 12:14:26,691 - httpx - INFO - HTTP Request: POST http://qdrant:6333/collections/tiledesk-llm/points/delete?wait=true "HTTP/1.1 200 OK"
2026-01-08 18:14:26.692 | 2026-01-08 12:14:26,692 - tilellm.store.qdrant.qdrant_repository_local - INFO - Eliminazione completata. Stato: completed
2026-01-08 18:14:26.692 | 2026-01-08 12:14:26,692 - tilellm.store.qdrant.qdrant_repository_local - INFO - Punti eliminati con metadata_id = '695f9fa1030c746c317bb6d7'.
2026-01-08 18:14:26.700 | 2026-01-08 12:14:26,700 - httpx - INFO - HTTP Request: PUT http://qdrant:6333/collections/tiledesk-llm/index?wait=true "HTTP/1.1 200 OK"
2026-01-08 18:14:26.708 | 2026-01-08 12:14:26,707 - httpx - INFO - HTTP Request: PUT http://qdrant:6333/collections/tiledesk-llm/index?wait=true "HTTP/1.1 200 OK"
2026-01-08 18:14:26.708 | Payload index created on 'tenant_id' for collection 'tiledesk-llm'.
2026-01-08 18:14:26.708 | 2026-01-08 12:14:26,708 - tilellm.tools.document_tools - INFO - Loading /api/files?path=uploads/users/695d0c7c8a92ad0013d6ca6f/files/ec6e76be-88b0-4e73-8bd3-39ae908d4160/Different%20Ideas%20for%20Tariff%20Module.docx
2026-01-08 18:14:26.709 | Traceback (most recent call last):
2026-01-08 18:14:26.709 | File "/tiledesk-llm/tilellm/store/qdrant/qdrant_repository_local.py", line 310, in add_item
2026-01-08 18:14:26.709 | documents = await fetch_documents(type_source=item.type,
2026-01-08 18:14:26.709 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-01-08 18:14:26.709 | File "/tiledesk-llm/tilellm/tools/document_tools.py", line 571, in fetch_documents
2026-01-08 18:14:26.709 | return load_document(source, type_source)
2026-01-08 18:14:26.709 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-01-08 18:14:26.709 | File "/tiledesk-llm/tilellm/tools/document_tools.py", line 486, in load_document
2026-01-08 18:14:26.709 | loader = Docx2txtLoader(url)
2026-01-08 18:14:26.709 | ^^^^^^^^^^^^^^^^^^^
2026-01-08 18:14:26.709 | File "/usr/local/lib/python3.12/site-packages/langchain_community/document_loaders/word_document.py", line 49, in init
2026-01-08 18:14:26.709 | raise ValueError("File path %s is not a valid file or url" % self.file_path)
2026-01-08 18:14:26.709 | ValueError: File path /api/files?path=uploads/users/695d0c7c8a92ad0013d6ca6f/files/ec6e76be-88b0-4e73-8bd3-39ae908d4160/Different%20Ideas%20for%20Tariff%20Module.docx is not a valid file or url
2026-01-08 18:14:26.709 | 2026-01-08 12:14:26,709 - tilellm.store.qdrant.qdrant_repository_local - ERROR - ValueError('File path /api/files?path=uploads/users/695d0c7c8a92ad0013d6ca6f/files/ec6e76be-88b0-4e73-8bd3-39ae908d4160/Different%20Ideas%20for%20Tariff%20Module.docx is not a valid file or url')
2026-01-08 18:14:26.709 | 2026-01-08 12:14:26,709 - tilellm.store.qdrant.qdrant_repository_local - ERROR - ValueError('File path /api/files?path=uploads/users/695d0c7c8a92ad0013d6ca6f/files/ec6e76be-88b0-4e73-8bd3-39ae908d4160/Different%20Ideas%20for%20Tariff%20Module.docx is not a valid file or url')
version: "3.7"
volumes:
tiledesk-datadb:
ollama:
qdrant_data:
services:
dashboard:
image: "tiledesk/tiledesk-dashboard:2.7.134-stage"
container_name: dashboard
environment:
- >-
FEATURES_TOKEN=PAY:F-ANA:T-ACT:T-TRI:T-GRO:T-DEP:T-OPH:T-MTL:T-CAR:T-PSA:F-MTT:T-SUP:T-LBS:T-APP:T-DEV:F-NOT:T-IPS:F-ETK:F-RAS:F-PPB:F-PET:F-MTS:F-TIL:T-DGF:T-NAT:T-HPB:F-TOW:F-KNB:T-GPT:T-BAN:F-AST:F-MON:T-CNT:F-AUT:F-WUN:F-INT:T-DPA:T
- BOT_CREDENTIAL_URL=/api/modules/dialogflow/botcredendials/
- "WIDGET_LOCATION=${EXTERNAL_BASE_URL:-http://localhost:8081}/widget/"
- SERVER_BASE_URL=/api/
- CHAT_BASE_URL=/chat/
- CDS_BASE_URL=/cds/
- WS_URL
- WS_URL_RELATIVE=/ws/
- BRAND_SRC
- REMOTE_JS_SRC
- CHAT21_ENGINE=mqtt
- UPLOAD_ENGINE=native
- PUSH_ENGINE=none
- LOG_LEVEL=info
- APPS_URL=/api/modules/apps/
- PROMO_BANNER_URL
- FIREBASE_APIKEY
- FIREBASE_AUTHDOMAIN
- FIREBASE_DATABASEURL
- FIREBASE_PROJECT_ID
- FIREBASE_STORAGEBUCKET
- FIREBASE_MESSAGINGSENDERID
- FIREBASE_APP_ID
- FIREBASE_VAPID
- API_BASEIMAGE_URL=/api/
- COMMUNITY_TEMPLATES_URL=/api/modules/templates/public/community
- TEMPLATES_URL=/api/modules/templates/public/templates
- FILE_UPLOAD_ACCEPT=/
ports:
- "4500:80" #use expose if you want to block external access
cds:
image: "tiledesk/design-studio:1.39.9-rc3"
container_name: cds
environment:
- >-
FEATURES_TOKEN=PAY:F-ANA:T-ACT:T-TRI:T-GRO:T-DEP:T-OPH:T-MTL:T-CAR:T-PSA:F-MTT:T-SUP:T-LBS:T-APP:T-DEV:F-NOT:T-IPS:F-ETK:F-RAS:F-PPB:F-PET:F-MTS:F-TIL:T-DGF:T-NAT:T-HPB:F-TOW:F-KNB:T-GPT:T-BAN:F-AST:F-MON:T-CNT:F-AUT:F-WUN:F-INT:T-DPA:T
- "WIDGET_LOCATION=${EXTERNAL_BASE_URL:-http://localhost:8081}/widget/"
- SERVER_BASE_URL=/api/
- DASHBOARD_URL=/dashboard/
- WS_URL
- WS_URL_RELATIVE=/ws/
- BRAND_SRC
- REMOTE_JS_SRC
- UPLOAD_ENGINE=native
- LOG_LEVEL=info
- FIREBASE_APIKEY
- FIREBASE_AUTHDOMAIN
- FIREBASE_DATABASEURL
- FIREBASE_PROJECT_ID
- FIREBASE_STORAGEBUCKET
- FIREBASE_MESSAGINGSENDERID
- FIREBASE_APP_ID
- FIREBASE_VAPID
- CDS_STORAGE_PREFIX=cds_sv5
- API_BASEIMAGE_URL=/api/
- FILE_UPLOAD_ACCEPT=/
- >-
AI_MODELS=llama3:latest;nomic-embed-text:latest;mistral:1;phi3:0.5
- MQTT_APPID=tilechat
- "MQTT_ENDPOINT=${EXTERNAL_MQTT_BASE_URL:-ws://localhost:8081}/mqws/ws"
ports:
- "4502:80" #use expose if you want to block external access
webwidget:
image: "chat21/chat21-web-widget:5.1.2"
container_name: chat21-web-widget
ports:
- "4200:80" # specify port forewarding
environment:
- CHAT21_ENGINE=mqtt
- MQTT_APPID=tilechat
- PUSH_ENGINE=none
- LOG_LEVEL=info
- "MQTT_ENDPOINT=${EXTERNAL_MQTT_BASE_URL:-ws://localhost:8081}/mqws/ws"
- "MQTT_APIENDPOINT=${EXTERNAL_BASE_URL:-http://localhost:8081}/chatapi/api"
#- MQTT_LOGINSERVICE_ENDPOINT=/api/chat21/native/auth/createCustomToken
- FIREBASE_APIKEY
- FIREBASE_AUTHDOMAIN
- FIREBASE_DATABASEURL
- FIREBASE_PROJECT_ID
- FIREBASE_STORAGEBUCKET
- FIREBASE_MESSAGINGSENDERID
- FIREBASE_TENANT=tilechat
- UPLOAD_ENGINE=native
- "SERVER_BASE_URL=${EXTERNAL_BASE_URL:-http://localhost:8081}/api/"
- "TRANSLATIONS_URL=${EXTERNAL_BASE_URL:-http://localhost:8081}/api/"
- "API_BASEIMAGE_URL=${EXTERNAL_BASE_URL:-http://localhost:8081}/api/"
- DASHBOARD_URL=/dashboard/
- AUTH_PERSISTENCE=LOCAL
- ENBED_JS=true
- FILE_UPLOAD_ACCEPT=/
ionic:
image: "chat21/chat21-ionic:3.4.22"
container_name: chat21-ionic
ports:
- "8082:80" #use expose if you want to block external access
environment:
- DASHBOARD_URL=/dashboard/
- API_BASEIMAGE_URL=/api/
- SERVER_BASE_URL=/api/
- >-
FEATURES_TOKEN=PAY:F-ANA:T-ACT:T-TRI:T-GRO:T-DEP:T-OPH:T-MTL:T-CAR:T-PSA:F-MTT:T-SUP:T-LBS:T-APP:T-DEV:F-NOT:T-IPS:F-ETK:F-RAS:F-PPB:F-PET:F-MTS:F-TIL:T-DGF:T-NAT:T-HPB:F-TOW:F-KNB:T-GPT:T-BAN:F-AST:F-MON:T-CNT:F-AUT:F-WUN:F-INT:T-DPA:T
- WIDGET_LOCATION=/widget/
- PUSH_ENGINE=none
- LOG_LEVEL=info
- FILE_UPLOAD_ACCEPT=/
- CHAT21_ENGINE=mqtt
- MQTT_APPID=tilechat
- "MQTT_ENDPOINT=${EXTERNAL_MQTT_BASE_URL:-ws://localhost:8081}/mqws/ws"
- MQTT_APIENDPOINT=/chatapi/api
- UPLOAD_ENGINE=native
- FIREBASE_APIKEY
- FIREBASE_AUTHDOMAIN
- FIREBASE_DATABASEURL
- FIREBASE_PROJECT_ID
- FIREBASE_STORAGEBUCKET
- FIREBASE_MESSAGINGSENDERID
- FIREBASE_TENANT=tilechat
- FIREBASE_VAPID
- SUPPORT_MODE=true
- WRITE_TO_BUTTON=true
- ARCHIVED_BUTTON=true
- AUTH_PERSISTENCE=LOCAL
- EMAIL_SECTION=true
- CHAT_STORAGE_PREFIX=chat_sv5
- WS_URL_RELATIVE=/ws/
chatbot:
image: "tiledesk/tiledesk-chatbot:2.0.32-rc8"
container_name: chatbot
environment:
- "API_ENDPOINT=http://server:3000"
- "TILEBOT_ENDPOINT=http://chatbot:3000"
- "API_URL=${EXTERNAL_BASE_URL:-http://localhost:8081}/api"
- "MONGODB_URI=mongodb://mongo/tiledesk"
- CACHE_ENABLED=true
- CACHE_REDIS_HOST=redis
- CACHE_REDIS_PORT=6379
- TILEBOT_LOG=info
- FLOW_LOGS_ENABLED=true
- >-
AMQP_MANAGER_URL=amqp://ignored:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3NjMwYTAwZS0xNTUxLTQ3Y2ItYmEzMC02NGRlNjJmYmNmNGYiLCJzdWIiOiIwMS1PQlNFUlZFUiIsInNjb3BlIjpbInJhYmJpdG1xLnJlYWQ6Ki8qLyoiLCJyYWJiaXRtcS53cml0ZToqLyovKiIsInJhYmJpdG1xLmNvbmZpZ3VyZToqLyovKiJdLCJjbGllbnRfaWQiOiIwMS1PQlNFUlZFUiIsImNpZCI6IjAxLU9CU0VSVkVSIiwiYXpwIjoiMDEtT0JTRVJWRVIiLCJ1c2VyX2lkIjoiMDEtT0JTRVJWRVIiLCJhcHBfaWQiOiJ0aWxlY2hhdCIsImlhdCI6MTY5NjQ5MjI4NywiZXhwIjoyMDA3NTMyMjg3LCJhdWQiOlsicmFiYml0bXEiLCIwMS1PQlNFUlZFUiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJ1c2VyIn0.Lq0MLTYny7tIYVQ-KEDLlL-h7gAqofCfC2IDgI_0TOE@rabbitmq:5672?heartbeat=60
- "AI_ENDPOINT=http://backend-llm-train:8000/api"
- GPTKEY=ollama
- "KB_ENDPOINT_TRAIN=http://backend-llm-train:8000/api"
- "KB_ENDPOINT_QA=http://backend-llm-qa:8000/api"
- OLLAMA_HOST=http://ollama:11434
server:
image: "tiledesk/tiledesk-server:2.13.23-op1"
container_name: server
volumes:
- ./uploads:/tiledesk-llm/uploads
restart: always
environment:
- LOG_LEVEL=info
- CHAT21_ENABLED=true
- CHAT21_ENGINE=mqtt
- "CHAT21_URL=http://chat21httpserver:8004"
- CHAT21_JWT_SECRET=tokenKey
- CHAT21_APPID=tilechat
- RESTHOOK_ENABLED=true
- ALLOW_REOPEN_CHAT=true
- >-
CHAT21_ADMIN_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzNDU2MTBkNy03MmYxLTQ5OWUtODQzMS0xMTNhZWJkOWVmOTgiLCJzdWIiOiIxMDAtQVBJQURNSU4iLCJzY29wZSI6WyJyYWJiaXRtcS5yZWFkOiovKi8qIiwicmFiYml0bXEud3JpdGU6Ki8qLyoiLCJyYWJiaXRtcS5jb25maWd1cmU6Ki8qLyoiXSwiY2xpZW50X2lkIjoiMTAwLUFQSUFETUlOIiwiY2lkIjoiMTAwLUFQSUFETUlOIiwiYXpwIjoiMTAwLUFQSUFETUlOIiwidXNlcl9pZCI6IjEwMC1BUElBRE1JTiIsImFwcF9pZCI6InRpbGVjaGF0IiwiaWF0IjoxNjE0OTQzNDkyLCJleHAiOjE5MjU5ODM0OTIsImF1ZCI6WyJyYWJiaXRtcSIsIjEwMC1BUElBRE1JTiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJhZG1pbiJ9.KptGMsTKjd3wUiiP1GGSTYqW1XXK1vjSRJnetC3wjxU
- >-
AMQP_MANAGER_URL=amqp://ignored:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3NjMwYTAwZS0xNTUxLTQ3Y2ItYmEzMC02NGRlNjJmYmNmNGYiLCJzdWIiOiIwMS1PQlNFUlZFUiIsInNjb3BlIjpbInJhYmJpdG1xLnJlYWQ6Ki8qLyoiLCJyYWJiaXRtcS53cml0ZToqLyovKiIsInJhYmJpdG1xLmNvbmZpZ3VyZToqLyovKiJdLCJjbGllbnRfaWQiOiIwMS1PQlNFUlZFUiIsImNpZCI6IjAxLU9CU0VSVkVSIiwiYXpwIjoiMDEtT0JTRVJWRVIiLCJ1c2VyX2lkIjoiMDEtT0JTRVJWRVIiLCJhcHBfaWQiOiJ0aWxlY2hhdCIsImlhdCI6MTY5NjQ5MjI4NywiZXhwIjoyMDA3NTMyMjg3LCJhdWQiOlsicmFiYml0bXEiLCIwMS1PQlNFUlZFUiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJ1c2VyIn0.Lq0MLTYny7tIYVQ-KEDLlL-h7gAqofCfC2IDgI_0TOE@rabbitmq:5672?heartbeat=60
- "MONGODB_URI=mongodb://mongo/tiledesk"
- EMAIL_ENABLED
- EMAIL_HOST
- EMAIL_USERNAME
- EMAIL_SECURE
- EMAIL_PORT
- EMAIL_PASSWORD
- EMAIL_FROM_ADDRESS
- "EMAIL_BASEURL=${EXTERNAL_BASE_URL:-http://localhost:8081}/dashboard"
- "WEBHOOK_ORIGIN=${EXTERNAL_BASE_URL:-http://localhost:8081}/api/"
- "WIDGET_LOCATION=${EXTERNAL_BASE_URL:-http://localhost:8081}/widget/"
- WS_SERVER_PATH
#PLEASE DON'T PASTE THE LICENSE KEY HERE USE .ENV FILE. DOCKER ISSUE WITH /n char
- LICENSE_KEY
- CACHE_ENABLED=true
- CACHE_ENGINE=redis
- CACHE_REDIS_HOST=redis
- CACHE_REDIS_PORT=6379
- APPS_ACCESS_TOKEN_SECRET=nodeauthsecret
- BOOT_LOADING=true
- "META_GRAPH_URL=https://graph.facebook.com/v20.0/"
- "TELEGRAM_API_URL=https://api.telegram.org/bot"
- "TELEGRAM_FILE_URL=https://api.telegram.org/file/bot"
- TELEGRAM_LOG=info
- FB_APP_ID
- FB_APP_SECRET
- GPTKEY=ollama
- >-
AI_MODELS=llama3:latest;nomic-embed-text:latest;mistral:1;phi3:0.5
- "OPENAI_ENDPOINT=https://api.openai.com/v1"
- "KB_ENDPOINT_TRAIN=http://backend-llm-train:8000/api"
- "KB_ENDPOINT_QA=http://backend-llm-qa:8000/api"
- VECTOR_STORE_NAME=qdrant
- INDEX_TYPE=serverless
- INDEX_NAME=tiledesk-llm
- VECTOR_SIZE=768
- VECTOR_STORE_HOST=qdrant
- VECTOR_STORE_PORT=6333
- VECTOR_STORE_DEPLOYMENT=local
- JOB_TOPIC_EXCHANGE_TRAIN=tiledesk-trainer
- JWT_SECRET_KEY=tokenKey
- COMMUNITY_VERSION=true
- QUOTES_ENABLED=false
- "TILEBOT_ENDPOINT=http://chatbot:3000"
- EMBEDDINGS_PROVIDER=ollama
- EMBEDDINGS_NAME=nomic-embed-text:latest
- EMBEDDINGS_DIMENSION=768
- SERVER_BASE_URL=http://server:3000
- WEBHOOK_BASE_URL=http://server:3000
- BASE_FILE_URL=http://server:3000/api # Crucial: include /api if that's where files live
- PUBLIC_BASE_URL=http://server:3000
- API_ENDPOINT=http://server:3000
- API_URL=http://server:3000/api
- FILE_SERVER_BASE_URL=http://server:3000
- REDESIGNED_QUICK_REPLIES=true
- LOCAL_UPLOADS_PATH=/tiledesk-llm
- FORCE_LOCAL_FILES=false
- BASE_FILE_URL=http://server:3000
- API_BASE_URL=http://server:3000/api
- FILE_SERVER_BASE_URL=http://server:3000
depends_on:
mongo:
condition: service_healthy
rabbitmq:
condition: service_healthy
ports:
- "3000:3000"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/"]
interval: 10s
timeout: 5s
retries: 5
start_period: 40s
chat21httpserver:
image: "chat21/chat21-http-server:0.2.37"
#image: chat21http-gab:0.1.11
container_name: chat21httpserver
#restart: always
environment:
- LOG_LEVEL=info
#- AUTO_RESTART=false
- "MONGODB_URI=mongodb://mongo/chat21"
- JWT_KEY=tokenKey
- >-
RABBITMQ_URI=amqp://ignored:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiMjM1OTFmZS05N2FhLTRmNWQtOGVlOS0yNjQ2NzljYmM0M2YiLCJzdWIiOiIxMDAtQVBJQURNSU4iLCJzY29wZSI6WyJyYWJiaXRtcS5yZWFkOiovKi8qIiwicmFiYml0bXEud3JpdGU6Ki8qLyoiLCJyYWJiaXRtcS5jb25maWd1cmU6Ki8qLyoiXSwiY2xpZW50X2lkIjoiMTAwLUFQSUFETUlOIiwiY2lkIjoiMTAwLUFQSUFETUlOIiwiYXpwIjoiMTAwLUFQSUFETUlOIiwidXNlcl9pZCI6IjEwMC1BUElBRE1JTiIsImFwcF9pZCI6InRpbGVjaGF0IiwiaWF0IjoxNjk2NDkyMjg3LCJleHAiOjIwMDc1MzIyODcsImF1ZCI6WyJyYWJiaXRtcSIsIjEwMC1BUElBRE1JTiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJhZG1pbiJ9.Ee-TpAPsoC7Dm7qsbUojeHud3E4OCtJZkpupu_R0Aic@rabbitmq:5672?heartbeat=60
- PUSH_ENABLED=true
- FIREBASE_PRIVATE_KEY
- FIREBASE_APIKEY
- FIREBASE_PROJECT_ID
- FIREBASE_CLIENT_EMAIL
- >-
PUSH_WH_CHAT21_API_ADMIN_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI5NGFjNjNmNy1hOGM3LTRkZGMtYjJkNS01MWE2MjBmNTdhNmIiLCJzdWIiOiIxMDAtQVBJQURNSU4iLCJzY29wZSI6WyJyYWJiaXRtcS5yZWFkOiovKi8qIiwicmFiYml0bXEud3JpdGU6Ki8qLyoiLCJyYWJiaXRtcS5jb25maWd1cmU6Ki8qLyoiXSwiY2xpZW50X2lkIjoiMTAwLUFQSUFETUlOIiwiY2lkIjoiMTAwLUFQSUFETUlOIiwiYXpwIjoiMTAwLUFQSUFETUlOIiwidXNlcl9pZCI6IjEwMC1BUElBRE1JTiIsImFwcF9pZCI6InRpbGVjaGF0IiwiaWF0IjoxNjM3NzYxNDM0LCJleHAiOjE5NDg4MDE0MzQsImF1ZCI6WyJyYWJiaXRtcSIsIjEwMC1BUElBRE1JTiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJhZG1pbiJ9.fLPrGArRlnyC04552oBsUjohf6l_BIpxwB847xWvugo
- "PUSH_WH_NOTIFY_URL=http://localhost:8004/api/tilechat/notify"
- >-
PUSH_WH_WEBHOOK_TOKEN=WHFyAhecCMkYsvldLFWbSrJt7lAZFAmrp7O5QVMvGQsLVn9SkfT
- CHAT21HTTP_CACHE_ENABLED=false
- "CONTACTS_LOOKUP_ENDPOINT=http://server:3000/users_util"
depends_on:
mongo:
condition: service_started
rabbitmq:
condition: service_healthy
ports:
- "8004:8004"
chat21server:
image: "chat21/chat21-server:0.2.53"
container_name: chat21server
#restart: always
environment:
#- AUTO_RESTART=false
- LOG_LEVEL=info
- "MONGODB_URI=mongodb://mongo/chat21"
- APP_ID=tilechat
- >-
WEBHOOK_ENDPOINTS=http://server:3000/chat21/requests,http://chat21httpserver:8004/api/tilechat/push/webhook/endpoint/WHFyAhecCMkYsvldLFWbSrJt7lAZFAmrp7O5QVMvGQsLVn9SkfT
- WEBHOOK_ENABLED=true
- "WEBHOOK_EVENTS=message-sent,message-delivered,conversation-unarchived"
- >-
RABBITMQ_URI=amqp://ignored:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3NjMwYTAwZS0xNTUxLTQ3Y2ItYmEzMC02NGRlNjJmYmNmNGYiLCJzdWIiOiIwMS1PQlNFUlZFUiIsInNjb3BlIjpbInJhYmJpdG1xLnJlYWQ6Ki8qLyoiLCJyYWJiaXRtcS53cml0ZToqLyovKiIsInJhYmJpdG1xLmNvbmZpZ3VyZToqLyovKiJdLCJjbGllbnRfaWQiOiIwMS1PQlNFUlZFUiIsImNpZCI6IjAxLU9CU0VSVkVSIiwiYXpwIjoiMDEtT0JTRVJWRVIiLCJ1c2VyX2lkIjoiMDEtT0JTRVJWRVIiLCJhcHBfaWQiOiJ0aWxlY2hhdCIsImlhdCI6MTY5NjQ5MjI4NywiZXhwIjoyMDA3NTMyMjg3LCJhdWQiOlsicmFiYml0bXEiLCIwMS1PQlNFUlZFUiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJ1c2VyIn0.Lq0MLTYny7tIYVQ-KEDLlL-h7gAqofCfC2IDgI_0TOE@rabbitmq:5672?heartbeat=60
depends_on:
rabbitmq:
condition: service_healthy
mongo:
condition: service_started
server:
condition: service_started
backend-llm-train:
image: "tiledesk/tiledesk-backend-llm:0.5.3-rc1"
container_name: backend-llm-train
volumes:
- ./uploads:/tiledesk-llm/uploads:ro
environment:
- TIMEOUT=240
# - 'REDIS_URL=redis://host.docker.internal:6379'
- REDIS_URL=redis://redis:6379
- TILELLM_ROLE=train
- WORKERS=3
# WORKER_CONFIGURATION
- "MONGODB_URL=mongodb://mongo/tiledesk"
- >-
AMQP_MANAGER_URL=amqp://ignored:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3NjMwYTAwZS0xNTUxLTQ3Y2ItYmEzMC02NGRlNjJmYmNmNGYiLCJzdWIiOiIwMS1PQlNFUlZFUiIsInNjb3BlIjpbInJhYmJpdG1xLnJlYWQ6Ki8qLyoiLCJyYWJiaXRtcS53cml0ZToqLyovKiIsInJhYmJpdG1xLmNvbmZpZ3VyZToqLyovKiJdLCJjbGllbnRfaWQiOiIwMS1PQlNFUlZFUiIsImNpZCI6IjAxLU9CU0VSVkVSIiwiYXpwIjoiMDEtT0JTRVJWRVIiLCJ1c2VyX2lkIjoiMDEtT0JTRVJWRVIiLCJhcHBfaWQiOiJ0aWxlY2hhdCIsImlhdCI6MTY5NjQ5MjI4NywiZXhwIjoyMDA3NTMyMjg3LCJhdWQiOlsicmFiYml0bXEiLCIwMS1PQlNFUlZFUiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJ1c2VyIn0.Lq0MLTYny7tIYVQ-KEDLlL-h7gAqofCfC2IDgI_0TOE@rabbitmq:5672?heartbeat=60
- JOB_TOPIC_EXCHANGE_TRAIN=tiledesk-trainer
- GPTKEY=ollama
- TRAIN_PREFETCH=4
- JWT_SECRET_KEY=tokenKey
- TRAINER_LOG=info
- OLLAMA_HOST=http://ollama:11434
- BASE_FILE_URL=http://server:3000/api
- API_BASE_URL=http://server:3000/api
- FILE_SERVER_BASE_URL=http://server:3000
- TILELLM_API_ENDPOINT=http://server:3000/api
- FORCE_LOCAL_FILES=false
- BASE_FILE_URL=http://server:3000/api
- FILE_SERVER_BASE_URL=http://server:3000
- FORCE_LOCAL_FILES=false
- BASE_FILE_URL=http://server:3000
- API_BASE_URL=http://server:3000/api
- FILE_SERVER_BASE_URL=http://server:3000
depends_on:
rabbitmq:
condition: service_healthy
redis:
condition: service_healthy
ollama:
condition: service_started
ports:
- "3007:8000"
- "3009:3009"
backend-llm-qa:
image: "tiledesk/tiledesk-backend-llm:0.5.3-rc1"
container_name: backend-llm-qa
environment:
- TIMEOUT=240
# - 'REDIS_URL=redis://host.docker.internal:6379'
- REDIS_URL=redis://redis:6379
- TILELLM_ROLE=qa
- WORKERS=3
# WORKER_CONFIGURATION
- "MONGODB_URL=mongodb://mongo/tiledesk"
- >-
AMQP_MANAGER_URL=amqp://ignored:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3NjMwYTAwZS0xNTUxLTQ3Y2ItYmEzMC02NGRlNjJmYmNmNGYiLCJzdWIiOiIwMS1PQlNFUlZFUiIsInNjb3BlIjpbInJhYmJpdG1xLnJlYWQ6Ki8qLyoiLCJyYWJiaXRtcS53cml0ZToqLyovKiIsInJhYmJpdG1xLmNvbmZpZ3VyZToqLyovKiJdLCJjbGllbnRfaWQiOiIwMS1PQlNFUlZFUiIsImNpZCI6IjAxLU9CU0VSVkVSIiwiYXpwIjoiMDEtT0JTRVJWRVIiLCJ1c2VyX2lkIjoiMDEtT0JTRVJWRVIiLCJhcHBfaWQiOiJ0aWxlY2hhdCIsImlhdCI6MTY5NjQ5MjI4NywiZXhwIjoyMDA3NTMyMjg3LCJhdWQiOlsicmFiYml0bXEiLCIwMS1PQlNFUlZFUiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJ1c2VyIn0.Lq0MLTYny7tIYVQ-KEDLlL-h7gAqofCfC2IDgI_0TOE@rabbitmq:5672?heartbeat=60
- JOB_TOPIC_EXCHANGE_TRAIN=tiledesk-trainer
- GPTKEY=ollama
- TRAIN_PREFETCH=4
- JWT_SECRET_KEY=tokenKey
- TRAINER_LOG=info
- OLLAMA_HOST=http://ollama:11434
- BASE_FILE_URL=http://server:3000/api
- API_BASE_URL=http://server:3000/api
- FILE_SERVER_BASE_URL=http://server:3000 # <--- Add/Update this
- FORCE_LOCAL_FILES=false
- BASE_FILE_URL=http://server:3000
- API_BASE_URL=http://server:3000/api
- FILE_SERVER_BASE_URL=http://server:3000
depends_on:
rabbitmq:
condition: service_healthy
redis:
condition: service_healthy
ollama:
condition: service_started
ports:
- "3008:8000"
ollama:
image: ollama/ollama
container_name: ollama
restart: unless-stopped
ports:
- "11434:11434"
volumes:
- ollama:/root/.ollama
proxy:
image: "tiledesk/tiledesk-docker-proxy:v1.1.2"
container_name: tiledesk-docker-proxy
ports:
- "8081:80" # specify port forewarding
depends_on:
server:
condition: service_healthy
dashboard:
condition: service_started
webwidget:
condition: service_started
chat21httpserver:
condition: service_started
rabbitmq:
condition: service_started
cds:
condition: service_started
command:
- nginx-debug
- "-g"
- daemon off;
qdrant:
image: "qdrant/qdrant:latest"
ports:
- "6333:6333"
- "6334:6334"
volumes:
- qdrant_data:/qdrant/storage
restart: unless-stopped
rabbitmq:
image: chat21/chat21-rabbitmq
mem_limit: 2gb
container_name: rabbitmq
environment:
RABBITMQ_ERLANG_COOKIE: "${RABBITMQ_ERLANG_COOKIE}"
RABBITMQ_DEFAULT_USER: "${RABBITMQ_DEFAULT_USER}"
RABBITMQ_DEFAULT_PASS: "${RABBITMQ_DEFAULT_PASS}"
# ADD THIS LINE: Tells RabbitMQ to use a writable location for its config
RABBITMQ_CONFIG_FILE: /tmp/rabbitmq.conf
ports:
- "5672:5672"
- "15672:15672"
- "1883:1883"
- "15675:15675"
healthcheck:
test: ["CMD", "nc", "-z", "localhost", "5672"]
interval: 5s
timeout: 15s
retries: 5 # Increased retries to give it more time to boot
# healthcheck:
# test: ["CMD", "rabbitmq-diagnostics", "ping"]
# interval: 10s
# timeout: 10s
# retries: 5
# healthcheck:
# test: [ "CMD", "nc", "-z", "localhost", "5672" ]
# interval: 5s
# timeout: 15s
# retries: 1
mongo:
container_name: mongo
image: "mongo:7.0.2"
command: ["--bind_ip_all", "--quiet"]
volumes:
- "tiledesk-datadb:/data/db"
ports:
- "27017:27017"
healthcheck:
test:
- CMD
- mongosh
- "--eval"
- db.adminCommand("ping")
interval: 10s
timeout: 5s
retries: 5
start_period: 20s
ulimits:
memlock: -1
nofile:
soft: 64000
hard: 64000
# healthcheck:
# test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
# interval: 5s
# timeout: 5s
# retries: 5
redis:
container_name: redis
image: "redis:7.0.5"
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
start_period: 5s
# healthcheck:
# test: ["CMD", "redis-cli", "ping"]
# interval: 5s
# timeout: 3s
# retries: 5
#ngrok:
container_name: ngrok
image: wernight/ngrok
command: ngrok http server:3000
ports:
- '4040:4040'
Can anybody help?
Beta Was this translation helpful? Give feedback.
All reactions