An AI assistant app that interacts with all major models, maintains history, generates and recognizes images, uploads PDFs/Word/Excel files, runs code, makes function calls to models, supports Markdown formatting, and more. Fully written by Claude 3 Sonnet.
You have to get some of those APIs and set environment variables (or put to .env file in the server folder, you can start with /server/.env.example, rename it to .env):
docker run -p 27017:27017 -d mongo
)npm i
then npm run api
npm i
then npm run start
graph LR
subgraph AllChat["AllChat"]
subgraph Application["Application Services"]
Backend["Backend<br>extender777/allchat-backend"]-->MongoDB
Frontend["Frontend<br>extender777/allchat-frontend"]-->Backend
PythonShell["Python Shell<br>python:3.12"]-->Backend
end
subgraph Data["Data Services"]
MongoDB["MongoDB<br>mongo:latest"]
end
subgraph Monitoring["Monitoring Services"]
Prometheus["Prometheus<br>prom/prometheus"]
NodeExporter["Node Exporter<br>prom/node-exporter"]
Grafana["Grafana<br>grafana/grafana"]-->Prometheus
Grafana-->Loki
Loki["Loki<br>grafana/loki"]
end
end
subgraph Volumes
MongoData["mongo-data"]
PrometheusVolume["prometheus"]
GrafanaVolume["grafana"]
LokiVolume["loki"]
end
MongoDB-->MongoData
Prometheus-->PrometheusVolume
Grafana-->GrafanaVolume
Loki-->LokiVolume
classDef serviceName fill:#ffc107,stroke:#ff9800,color:#212121;
class Backend,Frontend,PythonShell,MongoDB,Prometheus,NodeExporter,Grafana,Loki serviceName;
graph TD
A[AllChat API] --> B[Express Server]
B --> C[Routes]
B --> D[Middleware]
B --> E[Database]
B --> F[External Services]
C --> C1[User Management]
C --> C2[Chat Interactions]
C --> C3[Tool Calls]
C --> C4[Subscriptions]
D --> D1[CORS]
D --> D2[Rate Limiting]
D --> D3[Authentication]
D --> D4[Logging]
E --> E1[MongoDB]
F --> F1[AI Models]
F --> F2[Email Service]
F --> F3[Telegram Bot]
F --> F4[Payment Gateway]
F --> F5[Web Scraping]
F --> F6[File Processing]
F1 --> F1A[Anthropic AI]
F1 --> F1B[Google Vertex AI]
F1 --> F1C[OpenAI]
F6 --> F6A[PDF Parsing]
F6 --> F6B[Word Document Processing]
F6 --> F6C[Excel Spreadsheet Handling]
B --> G[WebSocket Server]
H[Utilities] --> H1[Sitemap Generation]
H --> H2[Cron Jobs]
H --> H3[Image Processing]