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.
채팅 판매용 오픈소스 AI 에이전트 Ecbot, 한 번 설정으로 메신저·Zalo·WhatsApp·Telegram에서 응답하고 직원에게 전달
Ecbot is an open-source AI agent for shops that sell in chat. Set it up once, answer on Messenger, Zalo, WhatsApp and Telegram, and hand off to staff.
커머스TypeScript · PythonGitHub @blackmouse572온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.