[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-CSML-by-Clevy--csml-engine":3,"tool-CSML-by-Clevy--csml-engine":65},[4,17,27,35,48,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",151918,2,"2026-04-12T11:33:05",[13,14,15],"开发框架","Agent","语言模型","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,3,"2026-04-06T11:19:32",[15,26,14,13],"图像",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":10,"last_commit_at":33,"category_tags":34,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85092,"2026-04-10T11:13:16",[26,43,44,45,14,46,15,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":54,"last_commit_at":55,"category_tags":56,"status":16},5784,"funNLP","fighting41love\u002FfunNLP","funNLP 是一个专为中文自然语言处理（NLP）打造的超级资源库，被誉为\"NLP 民工的乐园”。它并非单一的软件工具，而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。\n\n面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点，funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具，还独特地收录了丰富的垂直领域资源，如法律、医疗、金融行业的专用词库与数据集，甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性，从基础的字典词典到前沿的 BERT、GPT-2 模型代码，再到高质量的标注数据和竞赛方案，应有尽有。\n\n无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师，还是从事人工智能研究的学者，都能在这里找到急需的“武器弹药”。对于开发者而言，它能大幅减少寻找数据和复现模型的时间；对于研究者，它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神，极大地降低了中文自然语言处理的开发与研究成本，是中文 AI 社区不可或缺的宝藏仓库。",79857,1,"2026-04-08T20:11:31",[15,43,46],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":54,"last_commit_at":63,"category_tags":64,"status":16},6590,"gpt4all","nomic-ai\u002Fgpt4all","GPT4All 是一款让普通电脑也能轻松运行大型语言模型（LLM）的开源工具。它的核心目标是打破算力壁垒，让用户无需依赖昂贵的显卡（GPU）或云端 API，即可在普通的笔记本电脑和台式机上私密、离线地部署和使用大模型。\n\n对于担心数据隐私、希望完全掌控本地数据的企业用户、研究人员以及技术爱好者来说，GPT4All 提供了理想的解决方案。它解决了传统大模型必须联网调用或需要高端硬件才能运行的痛点，让日常设备也能成为强大的 AI 助手。无论是希望构建本地知识库的开发者，还是单纯想体验私有化 AI 聊天的普通用户，都能从中受益。\n\n技术上，GPT4All 基于高效的 `llama.cpp` 后端，支持多种主流模型架构（包括最新的 DeepSeek R1 蒸馏模型），并采用 GGUF 格式优化推理速度。它不仅提供界面友好的桌面客户端，支持 Windows、macOS 和 Linux 等多平台一键安装，还为开发者提供了便捷的 Python 库，可轻松集成到 LangChain 等生态中。通过简单的下载和配置，用户即可立即开始探索本地大模型的无限可能。",77307,"2026-04-11T06:52:37",[15,13],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":81,"owner_twitter":80,"owner_website":82,"owner_url":83,"languages":84,"stars":107,"forks":108,"last_commit_at":109,"license":110,"difficulty_score":23,"env_os":111,"env_gpu":112,"env_ram":112,"env_deps":113,"category_tags":121,"github_topics":122,"view_count":10,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":129,"updated_at":130,"faqs":131,"releases":162},6952,"CSML-by-Clevy\u002Fcsml-engine","csml-engine","CSML is an easy-to-use chatbot programming language and framework.","csml-engine 是一款专为构建聊天机器人设计的开源引擎，配套拥有名为 CSML 的领域特定编程语言。它旨在解决传统对话开发中状态机逻辑复杂、代码冗余以及多轮对话记忆管理困难等痛点，让开发者能更轻松地创建和维护复杂的对话流程。\n\n该工具非常适合希望快速搭建智能客服、虚拟助手或互动场景的后端开发者及全栈工程师。其核心亮点在于采用纯文本且表达力极强的语法，大幅降低了学习门槛；内置了短期与长期记忆槽机制，无需手动编写繁琐的状态管理代码即可轻松处理上下文。此外，csml-engine 支持丰富的交互组件（如卡片、按钮、日历等），并能灵活对接第三方 API 或注入任意语言编写的代码。在部署方面，它具备出色的便携性，仅需搭配 MongoDB、PostgreSQL 或 SQLite 等常见数据库即可运行，既支持云端部署也适合本地自建，是提升对话应用开发效率的实用选择。","\n\u003Ch1 align=\"center\">\n  \u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fwww.csml.dev\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCSML-by-Clevy_csml-engine_readme_965ce0a360e2.png\" alt=\"CSML\" width=\"200\">\u003C\u002Fa>\n  \u003Cbr>\n\n\u003C\u002Fh1>\n\n\u003Ch4 align=\"center\">First programming language dedicated to building chatbots.\u003C\u002Fh4>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Fworkflows\u002FRust\u002Fbadge.svg\" alt=\"Rust\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Freleases\u002Flatest\">\u003Cimg alt=\"GitHub release (latest by date)\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fcsml-by-clevy\u002Fcsml-engine?label=latest%20release&logo=Latest%20release\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fhub.docker.com\u002Fr\u002Fclevy\u002Fcsml-engine\">\u003Ca href=\"https:\u002F\u002Fhub.docker.com\u002Fr\u002Fclevy\u002Fcsml-engine\">\u003Cimg alt=\"Docker Image Version (latest semver)\" src=\"https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fv\u002Fclevy\u002Fcsml-engine?label=docker&sort=semver\">\u003C\u002Fa>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fjoin.slack.com\u002Ft\u002Fcsml-by-clevy\u002Fshared_invite\u002FenQtODAxMzY2MDQ4Mjk0LWZjOTZlODI0YTMxZTg4ZGIwZDEzYTRlYmU1NmZjYWM2MjAwZTU5MmU2NDdhNmU2N2Q5ZTU2ZTcxZDYzNTBhNTc\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fslack-CSML-blue.svg?logo=slack\" alt=\"Slack\">\u003C\u002Fa>  \n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#key-features\">Key Features\u003C\u002Fa> •\n  \u003Ca href=\"#example\">Example\u003C\u002Fa> •\n  \u003Ca href=\"#getting-started\">Getting started\u003C\u002Fa> •\n  \u003Ca href=\"#additional-information\">Additional Information\u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fplay.csml.dev\">Try CSML online\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Ch2 align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCSML-by-Clevy_csml-engine_readme_2d99be5b90f4.png\" alt=\"CSML-demo\" width=\"700\">\n\u003C\u002Fh2>\n\n[CSML (Conversational Standard Meta Language)](https:\u002F\u002Fcsml.dev) is both a domain-specific programming language and chatbot engine, designed to make it easy to develop complex chatbots.\n\nWith a very expressive and text-only syntax, CSML flows are easy to understand, making it easy to deploy and maintain conversational agents. CSML handles short and long-term memory slots, metadata injection, and connecting to any third party API or injecting arbitrary code in any programming language thanks to its powerful runtime APIs.\n\n## Key Features\n\n* Text-only, expressive syntax, easy to learn and develop complex chatbot scenarios with\n* Rich and extensible conversational components such as Carousel, Image, Video, Button, Card, Input, Calendar...\n* Built-in short-term and long-term memory slots: no more complex state machine boilerplate\n* Portable, fast, and easy to deploy: it only requires a standard MongoDB, PostgreSQL or SQLite database\n* Vibrant community of over 20,000 active CSML developers\n\n## Example\n\n```cpp\nstart:\n  say \"Hi, nice to meet you, I'm a demo bot 👋\"\n  if (name) {\n    say \"I already know you 😉\"\n    goto known\n  }\n  else \n    goto name\n\nname:\n  say Question(\n    \"I'd like to know you better, what's your name?\",\n    buttons=[\n      Button(\"I'm anonymous 😎\", accepts=[\"No\", \"Nope\"]) as anonBtn\n    ],\n  )\n  hold\n  if (event.match(anonBtn)) {\n    remember name = \"anon\"\n  } else {\n    remember name = event\n  }\n  goto known\n\nknown:\n  if (name == \"anon\")\n    say \"...but I know you don't want to say too much about yourself!\"\n  else \n    say \"You are {{name}}!\"\n  goto end\n```\n\nThe full documentation is available on https:\u002F\u002Fdocs.csml.dev\u002Flanguage.\n\n# Getting Started\n\nThe simplest way to get started with CSML is to use CSML Studio, a free online development environment with everything already setup to start creating bots right away, directly in your browser.\n\nTo get started with CSML Studio: https:\u002F\u002Fstudio.csml.dev\n\nCSML Studio gives you a free playground to experiment with the language as well as options to deploy your chatbots at scale in one-click.\n\n## Self-hosted \u002F cloud \u002F local installation\n\nCSML is available as a self-hostable web server that you can easily install with one of the options below.\n\nNote that you will need a database. The default choice is **MongoDB**, but **Amazon DynamoDB**, **PostgreSQL** and **SQLite**\nare also available by choosing the `mongodb`, `dynamodb`, `postgresql` or `sqlite` engine DB type with a slightly different set of environment variables.\n\nBefore you start, make sure that you have the environment set with following options:\n\n```\nENGINE_DB_TYPE=mongodb # must be one of mongodb|dynamodb|postgresql|sqlite\n\n# for mongodb\nMONGODB_URI=mongodb:\u002F\u002Fusername:password@localhost:27017\nMONGODB_DATABASE=csml\n\n# for postgresql\nPOSTGRESQL_URL=postgres:\u002F\u002Fuser:password@hostname:port\u002Fdatabase\n\n# for sqlite\nSQLITE_URL=csml.db\n\n# for dynamodb (requires S3 for storage of large items)\nAWS_ACCESS_KEY_ID= # or use a local IAM role\nAWS_SECRET_ACCESS_KEY= # or use a local IAM role\nAWS_REGION=\nAWS_DYNAMODB_ENDPOINT= # optional, defaults to the dynamodb endpoint for the given region.\nAWS_DYNAMODB_TABLE=\nAWS_S3_ENDPOINT= # optional, defaults to the S3 endpoint for the given region\nAWS_S3_BUCKET=\n\n# CSML Server configuration\nENGINE_SERVER_PORT=5000\nENGINE_SERVER_API_KEYS=someAuthKey4CsmlServer,someOtherAuthKey\n\n# Other optional engine configuration\nENGINE_ENCRYPTION_SECRET=some-secret-string # if not set, data will not be stored encrypted\nTTL_DURATION=30 # auto-remove chatbot user data after X days\nLOW_DATA_MODE=true # do not store contents of sent\u002Freceived messages\nDISABLE_SSL_VERIFY=false # reach trusted endpoints with known invalid certificates\nDEBUG=true # print debug output in console\nCSML_LOG_LEVEL=error # print log output in stderr. Possible values are error, warn, info, debug, trace.\nMODULES_URL= # default module repository base url\nMODULES_AUTH= # default module auth token\n```\n\n### Deploy to Heroku\n\n\u003Ca href=\"https:\u002F\u002Fheroku.com\u002Fdeploy?template=https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Ftree\u002Fmaster\">\n  \u003Cimg src=\"https:\u002F\u002Fwww.herokucdn.com\u002Fdeploy\u002Fbutton.svg\" alt=\"Deploy to Heroku\">\n\u003C\u002Fa>\n\n### Using a ready-to-use binary (Linux and MacOS only)\n\nThe easiest way to launch a CSML Engine on your own machine is to use one of our pre-built, optimized binaries (available for both MongoDB and Amazon DynamoDB). These binaries are available as executables on each of CSML's releases since v1.3.0.\n\nFollow the installation guide (for ubuntu, but the process will be similar on other operating systems) along on this blog post: https:\u002F\u002Fblog.csml.dev\u002Fhow-to-install-a-self-hosted-csml-engine-on-ubuntu-18-04\u002F\n\nTo download the latest CSML Server binaries, [head over to the latest release](https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Freleases\u002Flatest) and make sure to download the right version for your architecture.\n\n**Mac users**: upon first execution of this binary, Mac will probably open a warning about the application not being signed ([more info from Apple](https:\u002F\u002Fdeveloper.apple.com\u002Fdocumentation\u002Fxcode\u002Fnotarizing_macos_software_before_distribution)). As this is not intended as a widely-distributed application, we decided to not go through the notarization process for now, but you can safely ignore that warning! However, if you prefer, you can always [build this package from source](#with-rust-from-source).\n\n### With Docker\n\nWe provide a docker image for easy self-hosted usage.\n\n```\ndocker pull clevy\u002Fcsml-engine\n```\n\nTo get started with CSML Engine on Docker: https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine-docker\n\n### With Rust, from source\n\nCSML is built in [Rust](https:\u002F\u002Fwww.rust-lang.org\u002F). You don't need to know any Rust to run it though! Make sure you are running Rust v1.46+ and that you have openssl installed on your machine (or an equivalent for your linux distribution, such as libssl), then run:\n\n```\ncd csml_server\n\n# for use with MongoDB\ncargo build --release --features csml_engine\u002Fmongo\n\n# for use with Amazon DynamoDB\ncargo build --release --features csml_engine\u002Fdynamo\n```\n\nAfter that, execute your build (by default under .\u002Ftargets\u002Frelease\u002Fcsml_server) and visit http:\u002F\u002Flocalhost:5000 for some request examples.\n\n### With Node.js\n\nThis repository provides Node.js bindings of this rust library. To use this library in a Node.js project, you will need to build it from source. There are a few requirements:\n\n- Current Rust Stable version (v1.61.0 and above)\n- Node.js LTS\n- cargo-cp-artifact v0.1.6 [required dependencies](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fcargo-cp-artifact)\n- libssl-dev (or equivalent for your architecture: openssl-dev, libssl-devel...)\n\nTo compile CSML Engine into a [native node module](https:\u002F\u002FNode.js.org\u002Fapi\u002Faddons.html), run:\n\n```shell\ngit clone https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine csml\ncd csml\u002Fbindings\u002Fnode\u002Fnative\nnpm run build -- --release\n```\n\n> NB: you can build specifically for MongoDB, DynamoDB, SQLite or PostgreSQL by using one of the specialized scripts (i.e `npm run build:mongodb`) in the [package.json](.\u002Fbindings\u002Fnode\u002Fnative\u002Fpackage.json).\n\nThis method will output this native file: `csml\u002Fbindings\u002Fnode\u002Fnative\u002Findex.node` that you can simply `require()` (or `import`) in your project. For more details about how to use this module in your own projects, you can have a look at [our implementation for Docker version](https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine-docker\u002Fblob\u002Fmaster\u002Fapp\u002Fserver.js).\n\nPlease note that if you plan to deploy your project on a different architecture, you will need to recompile the project on that architecture. We recommend using git submodules if you need to integrate CSML Engine in your own Node.js projects.\n\n## REST API documentation\n\nCSML Server's HTTP REST API documentation is available in OpenAPIv3 format: [swagger.yaml](.\u002Fcsml_server\u002Fswagger.yaml). To read this file easily, you can open it in [Swagger Editor](https:\u002F\u002Feditor.swagger.io).\n\n## Additional Information\n\n### Play with the language\n\n* [Studio] - Create and deploy your chatbot in a matter of minutes.\n* [Playground] - Test and learn CSML in your browser.\n\n[Studio]: https:\u002F\u002Fstudio.csml.dev\n[Playground]: https:\u002F\u002Fplay.csml.dev\n\n### Getting Help\n\n* [Slack] - The official CSML community.\n* [CSML Documentation](https:\u002F\u002Fdocs.csml.dev) - Getting started.\n\n[Slack]: https:\u002F\u002Fcsml-by-clevy.slack.com\u002Fjoin\u002Fshared_invite\u002FenQtODAxMzY2MDQ4Mjk0LWZjOTZlODI0YTMxZTg4ZGIwZDEzYTRlYmU1NmZjYWM2MjAwZTU5MmU2NDdhNmU2N2Q5ZTU2ZTcxZDYzNTBhNTc\n\n### Information\n\n* [Release notes](https:\u002F\u002Fupdates.csml.dev\u002F) - Stay up to date.\n","\u003Ch1 align=\"center\">\n  \u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fwww.csml.dev\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCSML-by-Clevy_csml-engine_readme_965ce0a360e2.png\" alt=\"CSML\" width=\"200\">\u003C\u002Fa>\n  \u003Cbr>\n\n\u003C\u002Fh1>\n\n\u003Ch4 align=\"center\">首款专用于构建聊天机器人的编程语言。\u003C\u002Fh4>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Fworkflows\u002FRust\u002Fbadge.svg\" alt=\"Rust\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Freleases\u002Flatest\">\u003Cimg alt=\"GitHub release (latest by date)\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fcsml-by-clevy\u002Fcsml-engine?label=latest%20release&logo=Latest%20release\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fhub.docker.com\u002Fr\u002Fclevy\u002Fcsml-engine\">\u003Ca href=\"https:\u002F\u002Fhub.docker.com\u002Fr\u002Fclevy\u002Fcsml-engine\">\u003Cimg alt=\"Docker Image Version (latest semver)\" src=\"https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fv\u002Fclevy\u002Fcsml-engine?label=docker&sort=semver\">\u003C\u002Fa>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fjoin.slack.com\u002Ft\u002Fcsml-by-clevy\u002Fshared_invite\u002FenQtODAxMzY2MDQ4Mjk0LWZjOTZlODI0YTMxZTg4ZGIwZDEzYTRlYmU1NmZjYWM2MjAwZTU5MmU2NDdhNmU2N2Q5ZTU2ZTcxZDYzNTBhNTc\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fslack-CSML-blue.svg?logo=slack\" alt=\"Slack\">\u003C\u002Fa>  \n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#key-features\">核心特性\u003C\u002Fa> •\n  \u003Ca href=\"#example\">示例\u003C\u002Fa> •\n  \u003Ca href=\"#getting-started\">快速上手\u003C\u002Fa> •\n  \u003Ca href=\"#additional-information\">更多信息\u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fplay.csml.dev\">在线试用 CSML\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Ch2 align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCSML-by-Clevy_csml-engine_readme_2d99be5b90f4.png\" alt=\"CSML-demo\" width=\"700\">\n\u003C\u002Fh2>\n\n[CSML（会话标准元语言）](https:\u002F\u002Fcsml.dev) 是一种领域特定的编程语言兼聊天机器人引擎，旨在让开发复杂聊天机器人变得简单易行。\n\nCSML 拥有高度表达力且纯文本的语法，流程清晰易懂，便于部署和维护对话式智能体。它内置短期与长期记忆槽、元数据注入功能，并可通过其强大的运行时 API 连接任意第三方 API 或嵌入任何编程语言编写的自定义代码。\n\n## 核心特性\n\n* 纯文本、富有表现力的语法，易于学习，可快速开发复杂的聊天机器人场景。\n* 丰富且可扩展的对话组件，如轮播图、图片、视频、按钮、卡片、输入框、日历等。\n* 内置短期与长期记忆槽，无需再编写复杂的状态机模板代码。\n* 跨平台、高效且易于部署：仅需一个标准的 MongoDB、PostgreSQL 或 SQLite 数据库即可运行。\n* 拥有超过 2 万名活跃 CSML 开发者的活跃社区。\n\n## 示例\n\n```cpp\nstart:\n  say \"你好，很高兴认识你，我是一个演示机器人 👋\"\n  if (name) {\n    say \"我已经知道你啦 😉\"\n    goto known\n  }\n  else \n    goto name\n\nname:\n  say Question(\n    \"我想更了解你，你叫什么名字呢？\",\n    buttons=[\n      Button(\"我是匿名 😎\", accepts=[\"No\", \"Nope\"]) as anonBtn\n    ],\n  )\n  hold\n  if (event.match(anonBtn)) {\n    remember name = \"anon\"\n  } else {\n    remember name = event\n  }\n  goto known\n\nknown:\n  if (name == \"anon\")\n    say \"...不过我知道你不太想多聊自己吧！\"\n  else \n    say \"你叫 {{name}}！\"\n  goto end\n```\n\n完整文档请访问 https:\u002F\u002Fdocs.csml.dev\u002Flanguage。\n\n# 快速上手\n\n开始使用 CSML 最简单的方式是通过 CSML Studio，这是一个免费的在线开发环境，已预先配置好所有内容，让你可以直接在浏览器中创建机器人。\n\n立即开始使用 CSML Studio：https:\u002F\u002Fstudio.csml.dev\n\nCSML Studio 提供了一个免费的实验平台，帮助你熟悉这门语言，同时还支持一键将你的聊天机器人规模化部署。\n\n## 自托管 \u002F 云端 \u002F 本地安装\n\nCSML 可以作为一款自托管的 Web 服务器使用，你可以通过以下方式轻松安装。\n\n请注意，你需要准备一个数据库。默认选择 **MongoDB**，但也可以使用 **Amazon DynamoDB**、**PostgreSQL** 和 **SQLite**，只需在设置环境变量时选择 `mongodb`、`dynamodb`、`postgresql` 或 `sqlite` 作为数据库类型即可，对应的环境变量略有不同。\n\n在开始之前，请确保已正确设置以下环境变量：\n\n```\nENGINE_DB_TYPE=mongodb # 必须是 mongodb|dynamodb|postgresql|sqlite 中的一个\n\n# 对于 MongoDB\nMONGODB_URI=mongodb:\u002F\u002Fusername:password@localhost:27017\nMONGODB_DATABASE=csml\n\n# 对于 PostgreSQL\nPOSTGRESQL_URL=postgres:\u002F\u002Fuser:password@hostname:port\u002Fdatabase\n\n# 对于 SQLite\nSQLITE_URL=csml.db\n\n# 对于 DynamoDB（需要 S3 存储大文件）\nAWS_ACCESS_KEY_ID= # 或使用本地 IAM 角色\nAWS_SECRET_ACCESS_KEY= # 或使用本地 IAM 角色\nAWS_REGION=\nAWS_DYNAMODB_ENDPOINT= # 可选，若未设置则使用对应区域的 DynamoDB 默认端点。\nAWS_DYNAMODB_TABLE=\nAWS_S3_ENDPOINT= # 可选，若未设置则使用对应区域的 S3 默认端点。\nAWS_S3_BUCKET=\n\n# CSML 服务器配置\nENGINE_SERVER_PORT=5000\nENGINE_SERVER_API_KEYS=someAuthKey4CsmlServer,someOtherAuthKey\n\n# 其他可选的引擎配置\nENGINE_ENCRYPTION_SECRET=some-secret-string # 若未设置，数据将以明文存储\nTTL_DURATION=30 # X 天后自动清除聊天机器人用户数据\nLOW_DATA_MODE=true # 不存储发送\u002F接收的消息内容\nDISABLE_SSL_VERIFY=false # 访问具有已知无效证书的可信端点\nDEBUG=true # 在控制台输出调试信息\nCSML_LOG_LEVEL=error # 将日志输出到 stderr。可选值为 error、warn、info、debug、trace。\nMODULES_URL= # 默认模块仓库基础 URL\nMODULES_AUTH= # 默认模块认证令牌\n```\n\n### 部署到 Heroku\n\n\u003Ca href=\"https:\u002F\u002Fheroku.com\u002Fdeploy?template=https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Ftree\u002Fmaster\">\n  \u003Cimg src=\"https:\u002F\u002Fwww.herokucdn.com\u002Fdeploy\u002Fbutton.svg\" alt=\"部署到 Heroku\">\n\u003C\u002Fa>\n\n### 使用预编译二进制文件（仅限 Linux 和 macOS）\n\n在本地启动 CSML 引擎最简单的方法是使用我们提供的预构建优化二进制文件（适用于 MongoDB 和 Amazon DynamoDB）。这些二进制文件自 v1.3.0 版本起，随每个 CSML 发布版本一同提供。\n\n请参考这篇博客文章中的安装指南（以 Ubuntu 为例，其他操作系统步骤类似）：https:\u002F\u002Fblog.csml.dev\u002Fhow-to-install-a-self-hosted-csml-engine-on-ubuntu-18-04\u002F\n\n要下载最新的 CSML 服务器二进制文件，请前往 [最新发布页面](https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Freleases\u002Flatest)，并确保下载适合你系统架构的版本。\n\n**Mac 用户**：首次运行此二进制文件时，Mac 可能会弹出关于应用未签名的警告（[更多信息请参见 Apple 官方文档](https:\u002F\u002Fdeveloper.apple.com\u002Fdocumentation\u002Fxcode\u002Fnotarizing_macos_software_before_distribution)）。由于这不是面向大众发布的应用，我们暂时未进行公证流程，因此你可以放心忽略该警告！不过，如果你愿意，也可以选择从源码编译安装（详见下方“使用 Rust 从源码编译”部分）。\n\n### 使用 Docker\n\n我们提供了一个 Docker 镜像，方便您进行自托管部署。\n\n```\ndocker pull clevy\u002Fcsml-engine\n```\n\n要在 Docker 上开始使用 CSML Engine，请参阅：https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine-docker\n\n### 使用 Rust 从源码编译\n\nCSML 是用 [Rust](https:\u002F\u002Fwww.rust-lang.org\u002F) 构建的。不过，您无需掌握任何 Rust 知识即可运行它！请确保您的 Rust 版本为 v1.46 或更高，并且已在您的机器上安装 openssl（或适用于您 Linux 发行版的等效软件包，如 libssl），然后执行以下命令：\n\n```\ncd csml_server\n\n# 用于 MongoDB\ncargo build --release --features csml_engine\u002Fmongo\n\n# 用于 Amazon DynamoDB\ncargo build --release --features csml_engine\u002Fdynamo\n```\n\n之后，运行构建好的可执行文件（默认位于 .\u002Ftargets\u002Frelease\u002Fcsml_server），并访问 http:\u002F\u002Flocalhost:5000 查看一些请求示例。\n\n### 使用 Node.js\n\n此仓库提供了该 Rust 库的 Node.js 绑定。要在 Node.js 项目中使用此库，您需要从源码进行编译。以下是所需条件：\n\n- 当前稳定的 Rust 版本（v1.61.0 及以上）\n- Node.js LTS\n- cargo-cp-artifact v0.1.6 [必需依赖项](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fcargo-cp-artifact)\n- libssl-dev（或适用于您架构的等效软件包：openssl-dev、libssl-devel 等）\n\n要将 CSML Engine 编译为 [原生 Node.js 模块](https:\u002F\u002FNode.js.org\u002Fapi\u002Faddons.html)，请运行以下命令：\n\n```shell\ngit clone https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine csml\ncd csml\u002Fbindings\u002Fnode\u002Fnative\nnpm run build -- --release\n```\n\n> 注意：您可以通过使用特定脚本（例如 `npm run build:mongodb`）针对 MongoDB、DynamoDB、SQLite 或 PostgreSQL 进行专门编译，这些脚本位于 [package.json](.\u002Fbindings\u002Fnode\u002Fnative\u002Fpackage.json) 中。\n\n此方法会生成一个原生文件：`csml\u002Fbindings\u002Fnode\u002Fnative\u002Findex.node`，您可以在项目中直接通过 `require()` 或 `import` 引入它。有关如何在您自己的项目中使用此模块的更多详细信息，您可以查看我们为 Docker 版本提供的实现：https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine-docker\u002Fblob\u002Fmaster\u002Fapp\u002Fserver.js。\n\n请注意，如果您计划将项目部署到不同的架构上，您需要在该架构上重新编译项目。我们建议在将 CSML Engine 集成到您自己的 Node.js 项目时使用 Git 子模块。\n\n## REST API 文档\n\nCSML Server 的 HTTP REST API 文档以 OpenAPIv3 格式提供：[swagger.yaml](.\u002Fcsml_server\u002Fswagger.yaml)。为了更方便地阅读该文件，您可以在 [Swagger Editor](https:\u002F\u002Feditor.swagger.io) 中打开它。\n\n## 其他信息\n\n### 体验 CSML 语言\n\n* [Studio] - 在几分钟内创建并部署您的聊天机器人。\n* [Playground] - 在浏览器中测试和学习 CSML。\n\n[Studio]: https:\u002F\u002Fstudio.csml.dev\n[Playground]: https:\u002F\u002Fplay.csml.dev\n\n### 获取帮助\n\n* [Slack] - CSML 官方社区。\n* [CSML 文档](https:\u002F\u002Fdocs.csml.dev) - 入门指南。\n\n[Slack]: https:\u002F\u002Fcsml-by-clevy.slack.com\u002Fjoin\u002Fshared_invite\u002FenQtODAxMzY2MDQ4Mjk0LWZjOTZlODI0YTMxZTg4ZGIwZDEzYTRlYmU1NmZjYWM2MjAwZTU5MmU2NDdhNmU2N2Q5ZTU2ZTcxZDYzNTBhNTc\n\n### 信息\n\n* [发布说明](https:\u002F\u002Fupdates.csml.dev) - 保持最新状态。","# CSML Engine 快速上手指南\n\nCSML (Conversational Standard Meta Language) 是专为构建聊天机器人设计的领域特定编程语言及其引擎。它拥有简洁的文本语法，内置长短时记忆槽，支持丰富的对话组件，并能轻松连接第三方 API。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux, macOS 或 Windows (Docker 方式跨平台支持最好)。\n*   **数据库**: 必须准备以下任一数据库：\n    *   MongoDB (默认推荐)\n    *   PostgreSQL\n    *   SQLite\n    *   Amazon DynamoDB\n*   **可选依赖** (仅当从源码编译时需要):\n    *   **Rust**: 版本 v1.46+ (Node.js 绑定需 v1.61.0+)\n    *   **OpenSSL**: 系统需安装 `libssl` 或等效库 (如 `libssl-dev`)\n    *   **Node.js**: LTS 版本 (仅当使用 Node.js 绑定时)\n\n## 安装步骤\n\n您可以根据需求选择以下任意一种方式进行部署：\n\n### 方式一：使用 Docker (推荐)\n\n这是最简便的自托管方式。\n\n1.  拉取镜像：\n    ```bash\n    docker pull clevy\u002Fcsml-engine\n    ```\n2.  配置并运行容器（需设置环境变量指向您的数据库）：\n    ```bash\n    docker run -d \\\n      -e ENGINE_DB_TYPE=mongodb \\\n      -e MONGODB_URI=mongodb:\u002F\u002Fusername:password@host:27017 \\\n      -e MONGODB_DATABASE=csml \\\n      -p 5000:5000 \\\n      clevy\u002Fcsml-engine\n    ```\n    *详细 Docker 配置请参考：https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine-docker*\n\n### 方式二：使用预编译二进制文件 (Linux\u002FmacOS)\n\n1.  前往 [最新 Release 页面](https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Freleases\u002Flatest) 下载对应架构的二进制文件。\n2.  赋予执行权限并运行：\n    ```bash\n    chmod +x csml_server\n    .\u002Fcsml_server\n    ```\n    *注意：macOS 用户首次运行时若出现“无法验证开发者”警告，可在系统设置中允许运行，或选择从源码编译。*\n\n### 方式三：从源码编译 (Rust)\n\n如果您需要自定义功能或使用特定数据库驱动：\n\n1.  克隆仓库并进入服务器目录：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine csml\n    cd csml\u002Fcsml_server\n    ```\n2.  根据数据库类型编译 (以 MongoDB 为例)：\n    ```bash\n    cargo build --release --features csml_engine\u002Fmongo\n    ```\n    *(若使用 DynamoDB，请将 feature 改为 `csml_engine\u002Fdynamo`)*\n3.  运行生成的可执行文件：\n    ```bash\n    .\u002Ftarget\u002Frelease\u002Fcsml_server\n    ```\n\n### 方式四：Node.js 绑定\n\n若需在 Node.js 项目中集成：\n\n1.  进入绑定目录并安装依赖编译：\n    ```bash\n    cd csml\u002Fbindings\u002Fnode\u002Fnative\n    npm run build -- --release\n    ```\n2.  在项目中引入生成的 `index.node` 文件。\n\n## 基本使用\n\n启动引擎后，默认监听 `http:\u002F\u002Flocalhost:5000`。您可以通过 REST API 与引擎交互，或直接在代码中编写 CSML 脚本。\n\n### 1. 编写一个简单的 CSML 脚本\n\n创建一个名为 `bot.csml` 的文件，内容如下：\n\n```cpp\nstart:\n  say \"Hi, nice to meet you, I'm a demo bot 👋\"\n  if (name) {\n    say \"I already know you 😉\"\n    goto known\n  }\n  else \n    goto name\n\nname:\n  say Question(\n    \"I'd like to know you better, what's your name?\",\n    buttons=[\n      Button(\"I'm anonymous 😎\", accepts=[\"No\", \"Nope\"]) as anonBtn\n    ],\n  )\n  hold\n  if (event.match(anonBtn)) {\n    remember name = \"anon\"\n  } else {\n    remember name = event\n  }\n  goto known\n\nknown:\n  if (name == \"anon\")\n    say \"...but I know you don't want to say too much about yourself!\"\n  else \n    say \"You are {{name}}!\"\n  goto end\n```\n\n### 2. 在线体验与测试\n\n无需本地部署即可快速验证语法和逻辑：\n*   **CSML Playground**: https:\u002F\u002Fplay.csml.dev (在线测试语言特性)\n*   **CSML Studio**: https:\u002F\u002Fstudio.csml.dev (完整的在线开发与部署环境)\n\n### 3. 调用 API\n\n引擎启动后，可通过 HTTP POST 请求发送消息。完整的 API 文档 (OpenAPIv3) 位于 `swagger.yaml`，也可在 [Swagger Editor](https:\u002F\u002Feditor.swagger.io) 中加载查看。\n\n典型请求结构包含 `client`, `bot`, `payload` 等字段，具体格式请参考官方 API 文档。","某电商初创团队急需在两周内上线一个能处理售前咨询、订单查询及个性化推荐的智能客服机器人。\n\n### 没有 csml-engine 时\n- **状态管理混乱**：开发人员需手动编写大量样板代码来维护对话上下文（如用户是否已登录、当前处于哪个步骤），极易出现状态丢失或逻辑死循环。\n- **多轮对话开发繁琐**：实现带有按钮选择、卡片展示等富媒体交互的流程时，需反复嵌套复杂的条件判断，代码可读性差且难以维护。\n- **迭代效率低下**：每当业务规则变更（如增加一个新的促销问答分支），都需要修改核心后端代码并重新部署整个服务，响应速度慢。\n- **数据持久化困难**：短期记忆（当前会话）与长期记忆（用户历史偏好）的存储逻辑分散，对接 MongoDB 或 PostgreSQL 时需要额外编写大量胶水代码。\n\n### 使用 csml-engine 后\n- **内置记忆槽简化逻辑**：利用 csml-engine 自带的长短时记忆槽功能，无需编写状态机样板代码，即可轻松记住用户姓名或上一轮选择，确保对话流畅不中断。\n- **声明式语法提升可读性**：通过纯文本的领域专用语言定义对话流，像写剧本一样自然描述“提问 - 等待 - 判断”逻辑，富媒体组件（如按钮、日历）一行代码即可调用。\n- **热更新加速迭代**：业务人员可直接修改 CSML 脚本调整对话策略，无需重启服务或重新编译后端，新流程分钟级生效，完美适应快速变化的营销活动。\n- **开箱即用的数据存储**：csml-engine 原生支持 MongoDB、PostgreSQL 等多种数据库，自动处理数据持久化，让团队能专注于对话逻辑本身而非底层架构。\n\ncsml-engine 将复杂的聊天机器人开发转化为直观的剧本创作，让团队以十分之一的代码量实现了更稳定、易维护的智能客服系统。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCSML-by-Clevy_csml-engine_965ce0a3.png","CSML-by-Clevy","CSML","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FCSML-by-Clevy_7b1ca812.png","",null,"contact@clevy.io","https:\u002F\u002Fwww.csml.dev","https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy",[85,89,93,97,101,104],{"name":86,"color":87,"percentage":88},"Rust","#dea584",95.8,{"name":90,"color":91,"percentage":92},"HTML","#e34c26",4.1,{"name":94,"color":95,"percentage":96},"PLpgSQL","#336790",0.1,{"name":98,"color":99,"percentage":100},"Dockerfile","#384d54",0,{"name":102,"color":103,"percentage":100},"Shell","#89e051",{"name":105,"color":106,"percentage":100},"Procfile","#3B2F63",722,64,"2026-04-02T16:14:37","Apache-2.0","Linux, macOS","未说明",{"notes":114,"python":112,"dependencies":115},"该工具主要基于 Rust 开发，非 Python 项目。支持通过预编译二进制、Docker 容器或从源码编译部署。Mac 用户运行预编译二进制时可能会遇到签名警告，可忽略或选择源码编译。必须配置数据库（默认 MongoDB），并需设置相应的环境变量（如连接字符串、API 密钥等）。若使用 Node.js 绑定，需在目标架构机器上重新编译原生模块。",[116,117,118,119,120],"Rust v1.46+ (核心运行环境)","OpenSSL \u002F libssl-dev","MongoDB, PostgreSQL, SQLite 或 Amazon DynamoDB (数据库依赖)","Node.js LTS (仅 Node.js 绑定需要)","cargo-cp-artifact v0.1.6 (仅 Node.js 绑定需要)",[15],[123,124,125,126,127,128],"rust","interpreter","language","chatbot","csml","programming-language","2026-03-27T02:49:30.150509","2026-04-13T04:23:12.973474",[132,137,142,147,152,157],{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},31325,"如何在 Ubuntu 上自托管安装 CSML Server 并解决 API 调用返回 400 错误的问题？","确保已正确安装 MongoDB 并配置环境变量（如 ENGINE_DB_TYPE, MONGODB_HOST 等）。如果在运行 curl 示例时收到 400 错误，通常是因为 JSON 格式中的转义字符问题（例如在 flow content 中）。请检查 JSON  payload 中的字符串转义是否正确。此外，可以使用 GET \u002Fstatus 路由来检查服务器配置和数据库连接状态是否正常。","https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Fissues\u002F314",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},31326,"Docker 镜像启动时报错 'npm: executable file not found' 是怎么回事？","这是一个误解。较新版本的 CSML Engine 是完全用 Rust 编写的 Web 服务器，不再依赖 Node.js 或 npm。您不需要也不应该运行 'npm run start'。请直接运行 Docker 容器并通过其 API 进行交互。如果您使用的是旧的 docker-compose.yml 文件（其中包含 npm 命令），请更新为官方文档中的最新配置。","https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Fissues\u002F432",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},31327,"如何在聊天机器人窗口中渲染自定义 HTML 或添加点击拨打电话的按钮？","目前不支持直接渲染任意自定义 HTML 或执行 JavaScript。但针对特定需求有替代方案：\n1. 若需让用户点击拨打电话，可使用内置组件：`say Url(\"tel:0123456789\", text=\"Call Us\")`，这会在移动设备上自动打开电话应用。\n2. 若使用自托管引擎或 API 通道，可以使用“自定义组件 (Custom Components)”或在消息中添加额外属性（例如 `say Text(\"Call Us\", phone_number=\"0123456789\")`），然后在前端应用中解析这些属性并渲染为按钮。","https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Fissues\u002F237",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},31328,"为什么在 linux\u002Famd64 平台上运行 Docker 镜像会出现 'exec format error' 错误？","这通常是因为 Docker 镜像中复制的二进制文件架构与当前运行环境不匹配（例如镜像中是 ARM 架构二进制文件，而宿主是 amd64）。官方镜像可能未正确构建多架构支持。解决方案是自行构建 Docker 镜像：在 Dockerfile 中根据当前架构编译二进制文件，或者下载对应架构的预编译二进制文件，并编写脚本根据 `uname -m` 选择执行正确的二进制文件。","https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Fissues\u002F437",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},31329,"Chatwoot 集成中无法通过 WhatsApp 渠道发送或接收音频文件怎么办？","此问题不属于 CSML Engine 核心的 Bug，而是 CSML Studio 或特定渠道集成的功能请求\u002F限制。CSML Engine 本身主要负责逻辑处理，媒体文件的传输依赖于具体渠道（如 WhatsApp）和集成层（如 Chatwoot）的支持。建议前往 CSML 官方 Slack 社区反馈此功能需求，或检查 Chatwoot 与 WhatsApp 的官方文档确认音频支持情况。","https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Fissues\u002F430",{"id":158,"question_zh":159,"answer_zh":160,"source_url":161},31330,"CSML 语言中是否有类似 'debug' 的关键字用于调试变量？","CSML 中没有独立的 `debug` 关键字作为动作动词（如 `say`, `do`）。标准的调试方法是使用 `say Debug(variable)`。虽然社区曾提议添加 `debug x, y` 语法以简化调试，但由于可能与现有语法（如逗号分隔的参数解析）产生冲突且不一致，目前尚未实现。建议继续使用 `say Debug(...)` 进行调试输出。","https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Fissues\u002F183",[163,168,173,178,182,186,190,194,198,202,207,212,217,221,225,230,234,238,243,247],{"id":164,"version":165,"summary_zh":166,"released_at":167},231048,"v1.11.2","# 性能\n\n- 为 MongoDB 添加复合索引","2022-11-04T10:21:40",{"id":169,"version":170,"summary_zh":171,"released_at":172},231049,"v1.11.1","## 错误修复\n\n- 在打印 `_metadata` 时显示 `_context` https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Fcommit\u002Fa0c78f2409cb907d10c4c0fd199e019b1d0763ad\n- `_metadata._context.default_flow` 返回正确的值 https:\u002F\u002Fgithub.com\u002FCSML-by-Clevy\u002Fcsml-engine\u002Fcommit\u002F2a8e3babba8b65e113922e42c5f0114c1373a22e","2022-06-22T05:44:15",{"id":174,"version":175,"summary_zh":176,"released_at":177},231050,"v1.11.0","# 功能：\n- 添加 *=、\u002F=、%= 操作符 #426\n- 多机器人支持 #423\n- 插入流程 #425\n\n# 改进：\n- 设置变量步数限制 #427\n- DynamoDB TimeIndex 查询 #424\n- 更新 Neon #428\n","2022-06-16T08:41:45",{"id":179,"version":180,"summary_zh":80,"released_at":181},231051,"v1.11.0-rc5","2022-06-10T12:38:39",{"id":183,"version":184,"summary_zh":80,"released_at":185},231052,"v1.11.0-rc4","2022-06-07T14:36:55",{"id":187,"version":188,"summary_zh":80,"released_at":189},231053,"v1.11.0-rc3","2022-06-03T16:30:08",{"id":191,"version":192,"summary_zh":80,"released_at":193},231054,"v1.11.0-rc2","2022-06-03T15:42:21",{"id":195,"version":196,"summary_zh":80,"released_at":197},231055,"v1.11.0-rc1","2022-06-02T14:24:09",{"id":199,"version":200,"summary_zh":80,"released_at":201},231056,"v1.11.0-rc0","2022-05-24T10:59:31",{"id":203,"version":204,"summary_zh":205,"released_at":206},231057,"v1.10.4","## 修复bug\r\n\r\n- 从 S3 获取空模块，以实现向后兼容性\n","2022-05-11T14:22:06",{"id":208,"version":209,"summary_zh":210,"released_at":211},231058,"v1.10.3","## 修复bug\r\n\r\n- 修复 encode\u002Fdecode_html_entities() 函数的名称 #422 ","2022-05-09T14:48:22",{"id":213,"version":214,"summary_zh":215,"released_at":216},231059,"v1.10.2","# 功能特性\n\n- 添加 object.assign 方法 #418\n- 编码\u002F解码 URI #417\n- 添加 HTML 实体的编码\u002F解码功能 #419\n\n# Bug 修复\n\n- 修复 const 错误信息 #420","2022-05-05T19:41:36",{"id":218,"version":219,"summary_zh":80,"released_at":220},231060,"v1.10.1","2022-04-29T08:18:20",{"id":222,"version":223,"summary_zh":80,"released_at":224},231061,"v1.10.1-rc0","2022-04-29T06:39:05",{"id":226,"version":227,"summary_zh":228,"released_at":229},231062,"v1.10.0","# 功能：\n- 新增 `const` 关键字，用于声明局部不可变变量 #401\n- 新的模块系统，支持在不同聊天机器人之间导入依赖 #400\n- 新增 `hold_secure` 关键字，用于安全输入 #395\n- 数组扁平化 #415\n\n# 改进：\n- 支持使用 `{ }` 语法定义函数 #399\n- 支持 HTTP 请求中的非 JSON 内容类型 #397\n- 获取 HTTP 响应头 #414\n- 移除除默认流程外所有流程对 `start` 步骤的强制要求 #406\n- 新增 API 功能：获取指定日期范围内的消息 #403\n\n# 修复：\n- 闭包作用域内存问题 #411\n- 在其他组件内使用 `Text()` 组件时的格式化问题 #410","2022-04-28T14:50:06",{"id":231,"version":232,"summary_zh":80,"released_at":233},231063,"v1.10.0-rc1","2022-04-25T14:39:29",{"id":235,"version":236,"summary_zh":80,"released_at":237},231064,"v1.10.0-rc0","2022-04-25T11:31:44",{"id":239,"version":240,"summary_zh":241,"released_at":242},231065,"1.9.2","# 特性\n - 添加命令行构建\n\n# 错误修复\n - 修复 GitHub CI","2022-03-07T13:32:10",{"id":244,"version":245,"summary_zh":80,"released_at":246},231066,"1.9.2-rc3","2022-03-07T12:21:40",{"id":248,"version":249,"summary_zh":80,"released_at":250},231067,"1.9.2-rc2","2022-03-07T11:07:08"]