{"id":43116989,"url":"https://github.com/ai-bot-pro/achatbot","last_synced_at":"2026-02-11T16:01:37.347Z","repository":{"id":241599217,"uuid":"807176851","full_name":"ai-bot-pro/achatbot","owner":"ai-bot-pro","description":"An open source chat bot architecture for voice/vision (and multimodal) assistants,  local(CPU/GPU bound) and remote(I/O bound) to run.","archived":false,"fork":false,"pushed_at":"2025-12-28T12:46:56.000Z","size":26328,"stargazers_count":86,"open_issues_count":2,"forks_count":17,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-01-14T11:42:51.624Z","etag":null,"topics":["a2a","ai","asr","audio","avatar","chatbot","image","mcp","multimodal","speech","tts","vision","voice","voice-assistant","voice-recognition","webrtc"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ai-bot-pro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-05-28T15:59:36.000Z","updated_at":"2026-01-04T15:49:19.000Z","dependencies_parsed_at":"2024-08-26T06:04:16.009Z","dependency_job_id":"ebde886f-c0a9-4301-a240-ab5c47816361","html_url":"https://github.com/ai-bot-pro/achatbot","commit_stats":null,"previous_names":["weedge/chat-bot","ai-bot-pro/chat-bot","ai-bot-pro/achatbot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ai-bot-pro/achatbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ai-bot-pro%2Fachatbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ai-bot-pro%2Fachatbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ai-bot-pro%2Fachatbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ai-bot-pro%2Fachatbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ai-bot-pro","download_url":"https://codeload.github.com/ai-bot-pro/achatbot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ai-bot-pro%2Fachatbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29336999,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T16:00:30.228Z","status":"ssl_error","status_checked_at":"2026-02-11T16:00:25.398Z","response_time":97,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a2a","ai","asr","audio","avatar","chatbot","image","mcp","multimodal","speech","tts","vision","voice","voice-assistant","voice-recognition","webrtc"],"created_at":"2026-01-31T19:05:30.491Z","updated_at":"2026-02-11T16:01:37.341Z","avatar_url":"https://github.com/ai-bot-pro.png","language":"Python","funding_links":[],"categories":["LLMs/Multimodal Models"],"sub_categories":[],"readme":"\u003cimg width=\"1050\" height=\"289\" alt=\"image\" src=\"https://github.com/user-attachments/assets/163aaf65-2080-4aea-91e2-fb0e248a6ee9\" /\u003e\n\n# achatbot\n\n[![PyPI](https://img.shields.io/pypi/v/achatbot)](https://pypi.org/project/achatbot/)\n\nachatbot factory, create chat bots with vad,turn, asr, llm(tools)/mllm/audio-llm/omni-llm, tts, avatar, ocr, detect object etc..\n\n- [achatbot-go](https://github.com/ai-bot-pro/achatbot-go) (main/sub agent)\n\n# Features\n\n- support [\u003cimg width=\"20\" height=\"20\" alt=\"image\" src=\"https://github.com/user-attachments/assets/c85c6d69-2e16-4e1d-a824-8978f79aefd7\" /\u003e Model Context Protocol(MCP)](https://github.com/ai-bot-pro/achatbot/pull/153) and [\u003cimg width=\"20\" height=\"20\" alt=\"image\" src=\"https://github.com/user-attachments/assets/d12c3dfa-7ae4-4285-9a15-8a9222251efc\" /\u003e Agent2Agent (A2A) Protocol](https://github.com/ai-bot-pro/achatbot/pull/208)\n- [features](https://github.com/ai-bot-pro/achatbot/blob/main/docs/features.md)\n\n# Design\n\n## apipeline design\n\n- ⭐️ [pipeline design](https://github.com/ai-bot-pro/pipeline-py#design) ⭐️\n\n## achatbot design\n\n- [project structure](https://github.com/ai-bot-pro/achatbot/blob/main/docs/project_structure.md)\n\n# Install\n\n\u003e [!NOTE] \u003e `python --version` \u003e=3.10 \u003c=3.12 with [asyncio-task](https://docs.python.org/3.10/library/asyncio-task.html)\n\u003e\n\u003e if some other nested loop code with achatbot lib, you need to add the following code:\n\u003e\n\u003e ```python\n\u003e import nest_asyncio\n\u003e\n\u003e nest_asyncio.apply()\n\u003e ```\n\n\u003e [!TIP]\n\u003e use [uv](https://github.com/astral-sh/uv) + pip to run, install the required dependencies fastly, e.g.:\n\u003e `uv pip install achatbot` \u003e `uv pip install \"achatbot[fastapi_bot_server]\"`\n\n## pypi\n\n```bash\npython3 -m venv .venv_achatbot\nsource .venv_achatbot/bin/activate\npip install achatbot\n# optional-dependencies e.g.\npip install \"achatbot[fastapi_bot_server]\"\n```\n\n## local\n\n```bash\ngit clone --recursive https://github.com/ai-bot-pro/chat-bot.git\ncd chat-bot\npython3 -m venv .venv_achatbot\nsource .venv_achatbot/bin/activate\nbash scripts/pypi_achatbot.sh dev\n# optional-dependencies e.g.\npip install \"dist/achatbot-{$version}-py3-none-any.whl[fastapi_bot_server]\"\n```\n\n## run local lite avatar chat bot\n\n```shell\n# install dependencies (replace $version) (if use cpu(default) install lite_avatar)\npip install \"dist/achatbot-{$version}-py3-none-any.whl[fastapi_bot_server,livekit,livekit-api,daily,agora,silero_vad_analyzer,sense_voice_asr,openai_llm_processor,google_llm_processor,litellm_processor,together_ai,tts_edge,lite_avatar]\"\n# install dependencies (replace $version) (if use gpu(cuda) install lite_avatar_gpu)\npip install \"dist/achatbot-{$version}-py3-none-any.whl[fastapi_bot_server,livekit,livekit-api,daily,agora,silero_vad_analyzer,sense_voice_asr,openai_llm_processor,google_llm_processor,litellm_processor,together_ai,tts_edge,lite_avatar_gpu]\"\n# download model weights\nhuggingface-cli download weege007/liteavatar --local-dir ./models/weege007/liteavatar\nhuggingface-cli download FunAudioLLM/SenseVoiceSmall --local-dir ./models/FunAudioLLM/SenseVoiceSmall\n# run local lite-avatar chat bot\npython -m src.cmd.bots.main -f config/bots/daily_liteavatar_echo_bot.json\npython -m src.cmd.bots.main -f config/bots/daily_liteavatar_chat_bot.json\n```\n\nMore details: https://github.com/ai-bot-pro/achatbot/pull/161\n\n## run local lam_audio2expression avatar chat bot\n\n### download model weights\n\ndownload model weights from huggingface and oss to models folder for local inference, use docker volume to mount models folder\n\n```shell\n\nwget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/data/LAM/LAM_audio2exp_streaming.tar -P ./models/LAM_audio2exp/\ntar -xzvf ./models/LAM_audio2exp/LAM_audio2exp_streaming.tar -C ./models/LAM_audio2exp \u0026\u0026 rm ./models/LAM_audio2exp/LAM_audio2exp_streaming.tar\ngit clone --depth 1 https://www.modelscope.cn/AI-ModelScope/wav2vec2-base-960h.git ./models/facebook/wav2vec2-base-960h\nhuggingface-cli download FunAudioLLM/SenseVoiceSmall  --local-dir ./models/FunAudioLLM/SenseVoiceSmall\n```\n\n### run local lam_audio2expression avatar chat bot\n\n2 ways:\n\n- run local lam_audio2expression avatar chat bot (NOTE: don't support MacOS ARM64 architecture)\n\n```shell\n# install dependencies (replace $version)\npip install \"dist/achatbot-{$version}-py3-none-any.whl[fastapi_bot_server,silero_vad_analyzer,sense_voice_asr,openai_llm_processor,google_llm_processor,litellm_processor,together_ai,tts_edge,lam_audio2expression_avatar]\"\n# if use MacOS ARM64, need pip install tensorflow==2.13.0\n# NOTE: python_version \u003c '3.12', spleeter==2.4.2 don't support MacOS ARM64 arch\npip install spleeter==2.4.2\npip install typing_extensions==4.14.0 aiortc==1.13.0 transformers==4.36.2 protobuf==5.29.4\n\n# run http signaling service + webrtc + websocket local lam_audio2expression-avatar chat bot\npython -m src.cmd.webrtc_websocket.fastapi_ws_signaling_bot_serve -f config/bots/small_webrtc_fastapi_websocket_avatar_echo_bot.json\npython -m src.cmd.webrtc_websocket.fastapi_ws_signaling_bot_serve -f config/bots/small_webrtc_fastapi_websocket_avatar_chat_bot.json\n# run http signaling service + webrtc + websocket voice avatar agent web ui\ncd ui/webrtc_websocket/lam_audio2expression_avatar_ts \u0026\u0026 npm install \u0026\u0026 npm run dev\n# run websocket signaling service + webrtc + websocket local lam_audio2expression-avatar chat bot\npython -m src.cmd.webrtc_websocket.fastapi_ws_signaling_bot_serve_v2 -f config/bots/small_webrtc_fastapi_websocket_avatar_echo_bot.json\npython -m src.cmd.webrtc_websocket.fastapi_ws_signaling_bot_serve_v2 -f config/bots/small_webrtc_fastapi_websocket_avatar_chat_bot.json\n```\n\n- run local lam_audio2expression avatar chat bot with docker container\n\n```shell\ncd deploy/docker\n\n# build base img\nmake docker_cpu_debian_img\n# build runnable img\n# install lam_audio2expression_avatar dependency, need achatbot:base img\nmake docker_cpu_debian_lam_audio2expression_avatar_run_img\n\n# run container with docker volume to mount models and config folder\nmake docker_cpu_debian_lam_audio2expression_avatar_container_run\n```\n\n### run websocket signaling service + webrtc + websocket voice avatar agent web ui\n\n```shell\ncd ui/webrtc_websocket/lam_audio2expression_avatar_ts_v2 \u0026\u0026 npm install \u0026\u0026 npm run dev\n```\n\nMore details: https://github.com/ai-bot-pro/achatbot/pull/164 and https://github.com/ai-bot-pro/achatbot/pull/206 | online lam_audio2expression avatar: https://avatar-2lm.pages.dev/\n\n---\n\n# Run chat bots\n\n- :memo: [Run chat bots with colab notebook](https://github.com/ai-bot-pro/achatbot/blob/main/docs/colab.md)\n\n# License\n\nachatbot is released under the [BSD 3 license](LICENSE). (Additional code in this distribution is covered by the MIT and Apache Open Source\nlicenses.) However you may have other legal obligations that govern your use of content, such as the terms of service for third-party models.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fai-bot-pro%2Fachatbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fai-bot-pro%2Fachatbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fai-bot-pro%2Fachatbot/lists"}