Koffie aanbieding deze week: alle supermarkten
Welke koffie is deze week in de aanbieding of in de bonus? Nu 192 aanbiedingen bij 14 supermarkten, tot 50% korting, met prijs per kilo, cup en pad.
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Open source AI chat-agent engine, omnichannel, alternative to Intercom, Zendesk, Chatwoot, ChatBase.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗The open-source AI sales agent for shops that sell in chat.
Your customer asked about a dress on Facebook, ordered it on WhatsApp, and is now asking on Telegram where it is. To most chatbots, that's three strangers, and your staff scroll through three apps to piece the story together.
Ecbot keeps one profile per person across multiple channels, so the agent and your staff pick up where the last chat stopped. The agent also finishes the sale. It checks stock, creates the order and books delivery through your own API, then hands the chat to a person when a customer gets upset or asks for one.
It runs on your own server.
Who it is for
| Channel | Status |
|---|---|
| Facebook Messenger | Shipped |
| Zalo OA | Shipped |
| Telegram | Shipped |
| WhatsApp Business | Shipped |
| Threads | Built, hidden until configured, goes live after Meta App Review |
| Website widget | Shipped |
| REST API channel | Shipped |
| Built, hidden until configured, goes live after Meta App Review | |
| TikTok Shop | Roadmap, adapter slot open |
| Shopee | Roadmap, adapter slot open |
Adapters are self-contained (apps/api/src/modules/platform/adapters/). Two slots are open and specced, which makes them good first contributions.
Also included: input and output guardrails, rule-based follow-up messages, workspaces with roles and invitations, API keys, an activity log, and token streaming to the channel.
Self-hosted Ecbot has every feature Ecbot Cloud has. You supply two things: an LLM key (Ecbot routes through OpenRouter, so set OPENROUTER_API_KEY and pay the provider directly) and, for Facebook, Instagram or Zalo, your own platform app with messaging permissions approved. Telegram, the website widget and the REST API channel need no approval, so start with one of those.
This runs Ecbot for development. To run it on a server, see Self-hosting: docker compose --profile full up -d --build starts everything behind Caddy with HTTPS and creates the schema for you.
Requires Node 20+, pnpm 9, Docker, and uv with Python 3.12+ (for apps/ai).
git clone https://github.com/blackmouse572/ecbot.git
cd ecbot
pnpm install
1. Configure.
pnpm setup:local
Creates apps/api, apps/app and apps/ai .env files and fills everything that only has to be consistent: JWT keys, CORS origins, internal secrets, and the API key pairs the apps share. It prompts only for values it cannot generate. OPENROUTER_API_KEY is the one you must supply, because Ecbot cannot call an LLM without it. It never overwrites a value you set, so you can re-run it. Installation lists what it sets, its options and troubleshooting. Run it before Compose, because the JWKS server serves the keys it writes.
2. Bring up the infrastructure. This starts Postgres with pgvector, Redis, a JWKS server and a Cloud Tasks emulator.
docker compose up -d
To use a hosted Postgres instead (Neon, Supabase, RDS), point DATABASE_URL at it and ignore the database container. The database needs the pgvector extension, because Ecbot stores relational data and embeddings together.
3. Create the schema, and optionally seed demo data.
pnpm --filter api migration:up
pnpm --filter api migrate:seed # demo countries, API keys, roles and users
migration:up applies the migrations in apps/api/migrations/ to an empty database and records each one, so later upgrades use the same command. Do not run schema:create. It builds the tables without recording a migration, and your next upgrade would replay the whole chain.
4. Run the apps.
pnpm dev:app # api + app
pnpm --filter ai dev # AI service, in a second shell
| App | http://localhost:5173 |
| API | http://localhost:8080 |
| API docs (Swagger) | http://localhost:8080/docs |
| AI service | http://localhost:8000 |
To run the apps in containers too, use the Compose profiles: docker compose --profile app up for api + app, --profile full to include the AI service. Both serve the app on http://localhost and run the migrations first.
The seed inserts demo accounts with well-known passwords and prints generated API keys once. It refuses to run with
NODE_ENV=productionorAPP_ENV=production. Change the demo passwords before you expose an instance.
A Turborepo + pnpm workspace.
Apps
api: the backend (NestJS 11, PostgreSQL via MikroORM, Redis and Cloud Tasks). It owns channels, conversations, knowledge, tools and the operator API.app: the operator UI (React 19, Vite, TanStack Query, React Router v7).ai: the agent runtime (Python 3.12, FastAPI, LangChain). It handles generation, RAG and guardrails, and api streams from it over HTTP.edge: an optional Cloudflare Worker that receives platform webhooks and forwards them. Self-hosting works without it, so point webhooks straight at api.Packages: @repo/ui (shared components), @repo/client (API client generated from the OpenAPI schema), @repo/auth, plus shared oxlint and TypeScript configs.
pnpm dev # everything
pnpm lint # oxlint
pnpm check-types # tsc --noEmit
pnpm test:api # api unit tests
pnpm generate:client # regenerate @repo/client after changing API DTOs or routes
Conventions live in AGENTS.md and .github/instructions/. Read CONTEXT.md for the domain vocabulary before you name anything.
Start with CONTRIBUTING.md. Adapter slots are labelled good first issue.
Ask questions and share what you build on Discord.
Report vulnerabilities privately, following SECURITY.md. Do not open a public issue.
AGPL-3.0. apps/api began as a fork of ack-nestjs-boilerplate (MIT); see NOTICE.
"Ecbot" and the Ecbot logo are trademarks and fall outside the licence. See TRADEMARK.md.