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.