{"id":27956737,"url":"https://github.com/ModelEngine-Group/fit-framework","last_synced_at":"2025-05-07T18:08:12.629Z","repository":{"id":278883874,"uuid":"937056810","full_name":"ModelEngine-Group/fit-framework","owner":"ModelEngine-Group","description":"FIT: 企业级AI开发框架，提供多语言函数引擎（FIT）、流式编排引擎（WaterFlow）及Java生态的LangChain替代方案（FEL）。原生/Spring双模运行，支持插件热插拔与智能聚散部署，无缝统一大模型与业务系统。","archived":false,"fork":false,"pushed_at":"2025-04-24T03:45:00.000Z","size":10854,"stargazers_count":843,"open_issues_count":36,"forks_count":145,"subscribers_count":91,"default_branch":"main","last_synced_at":"2025-04-24T04:20:40.375Z","etag":null,"topics":["ai","java","python"],"latest_commit_sha":null,"homepage":"http://modelengine-ai.net","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ModelEngine-Group.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"License.txt","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}},"created_at":"2025-02-22T08:20:15.000Z","updated_at":"2025-04-24T03:45:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"1af557fd-d638-4b78-9186-34c8f7a76147","html_url":"https://github.com/ModelEngine-Group/fit-framework","commit_stats":null,"previous_names":["modelengine-group/fit-framework"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModelEngine-Group%2Ffit-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModelEngine-Group%2Ffit-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModelEngine-Group%2Ffit-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModelEngine-Group%2Ffit-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ModelEngine-Group","download_url":"https://codeload.github.com/ModelEngine-Group/fit-framework/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252931535,"owners_count":21827111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["ai","java","python"],"created_at":"2025-05-07T18:02:09.485Z","updated_at":"2025-05-07T18:08:12.560Z","avatar_url":"https://github.com/ModelEngine-Group.png","language":"Java","readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/resources/fit-logo.png\" alt=\"FIT Logo\" width=\"395\"\u003e\n\n# FIT Framework v3.6.0-SNAPSHOT\n\n**Java 企业级 AI 开发框架，提供多语言函数引擎（FIT）、流式编排引擎（WaterFlow）及 Java 生态的 LangChain 替代方案（FEL）。原生 /\nSpring 双模运行，支持插件热插拔与智能聚散部署，无缝统一大模型与业务系统。**\n\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/license/MIT)\n[![JDK](https://img.shields.io/badge/JDK-17-green.svg)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)\n[![JDK](https://img.shields.io/badge/JDK-21-green.svg)](https://www.oracle.com/java/technologies/javase/jdk21-archive-downloads.html)\n\u003c/div\u003e\n\n----------\n\n# FIT: 重新定义 AI 工程化的三维坐标系\n\n## 核心架构\n\n1. **FIT Core：语言无界，算力随需**\n\n   多语言函数计算底座（Java/Python/C++）支持插件化热插拔，独创智能聚散部署——代码无需修改，单体应用与分布式服务一键切换，运行时自动路由本地调用或\nRPC，让基础设施成为「隐形的伙伴」。\n\n2. **WaterFlow Engine：流式智能，万物可编排**\n\n   打破 BPM 与响应式编程的次元壁，图形化编排与声明式 API 双模驱动。业务逻辑可像乐高组合般动态拼接，从毫秒级微流程到跨系统长事务，皆以统一范式驾驭。\n\n3. **FEL (FIT Expression for LLM)：Java 生态的 LangChain 革命**\n\n   当 Python 阵营的 LangChain 重塑 AI 应用开发时，FEL 为 Java 开发者带来了更符合工程化实践的答案——基于标准化原语封装大模型、知识库与工具链，让\nAI 能力真正融入 Java 技术栈的血脉。\n\n- retrieve 样例\n\n``` java\nAiProcessFlow\u003cTip, Content\u003e retrieveFlow = AiFlows.\u003cTip\u003ecreate()\n        .runnableParallel(history(), passThrough())\n        .conditions()\n        .match(tip -\u003e !tip.freeze().get(DEFAULT_HISTORY_KEY).text().isEmpty(),\n                node -\u003e node.prompt(Prompts.human(REWRITE_PROMPT))\n                        .generate(chatFlowModel)\n                        .map(ChatMessage::text))\n        .others(node -\u003e node.map(tip -\u003e tip.freeze().get(\"query\").text()))\n        .retrieve(new DefaultVectorRetriever(vectorStore, SearchOption.custom().topK(1).build()))\n        .synthesize(docs -\u003e Content.from(docs.stream().map(Document::text).collect(Collectors.joining(\"\\n\\n\"))))\n        .close();\n```\n\n- agent 样例\n\n``` java\nAiProcessFlow\u003cString, ChatMessage\u003e agentFlow = AiFlows.\u003cString\u003ecreate()\n        .map(query -\u003e Tip.fromArray(query))\n        .prompt(Prompts.human(\"{{0}}\"))\n        .delegate(agent)\n        .close();\n```\n\n## 设计哲学\n\n- 约定优于配置的工程实践\n\n  FIT 通过智能约定大幅减少胶水代码：\n\n    - 部署无感化：聚散模式自动识别，开发者只需声明业务关系，无需手工标注远程/本地调用\n    - 协议透明化：HTTP/gRPC/共享内存等通信方式由框架按上下文智能选择 \n    - 资源自管理：插件依赖自动注入，服务发现与熔断机制内置实现\n\n  这种「智能契约」机制，使得80%的通用场景实现零配置，同时保留20%复杂场景的深度定制能力。\n\n## 为什么工程师选择 FIT ？\n\n- 填补空白：首个面向 Java 生态的 AI 全栈框架，让 Java 开发者无需切换技术栈即可构建现代 AI 应用\n- 拒绝妥协：既保有 Python 生态的敏捷性，又继承 Java 体系的高性能与工程化优势\n- 面向未来：从单机原型到云原生集群，架构弹性随业务共同进化\n\n----------\n\n## 环境配置\n\n开发环境配置\n\n- 开发环境：`IntelliJ IDEA`\n- Java 17\n- 代码格式化文件：[CodeFormatterFromIdea.xml](CodeFormatterFromIdea.xml)\n- `Maven` 配置：推荐版本 Maven 3.8.8+\n\n**构建命令**\n\n```\nmvn clean install\n```\n\n**输出目录**\n\n```\nbuild/\n```\n\n**增加权限**\n\n```\nchmod +x build/bin/*\n```\n\n**启动命令**\n\n```\nbuild/bin/fit start\n```\n\n\u003e 以上编译构建出的 `fit` 命令可以通过系统操作（别名或添加系统路径）来简化输入。\n\n**配置系统环境变量及创建插件目录**\n\n- 首先用 `maven` 编译打包 `./framework/fit/java`，将 `build` 目录内容存储在本地 `fitframework` 目录下，此目录为 FIT 核心框架目录地址。\n- 配置 `FIT` 框架目录的系统环境变量，变量值为 `FIT` 核心框架目录地址，使 `fit` 命令可执行。例如 `FIT` 核心框架位置在\n  `/demo/fitframework`，则变量值配置为 `/demo/fitframework`。\n- 新建任意目录作为插件目录，在该目录下存放插件，可在插件目录下使用命令 `fit start` 启动服务。\n\n\u003e 以上环境配置步骤请根据使用的操作系统使用相应的路径分隔符和环境变量配置操作。\n\n## 快速开始\n\n- FIT 函数框架\n  - 请参考 [FIT 快速开始](framework%2Ffit%2Fjava%2FREADME.md)，该指南将简单介绍 FIT 的核心设计概念，并指导您构建基础的应用。\n- WaterFlow 流调度引擎\n  - 请参考 [WaterFlow 快速开始](framework%2Fwaterflow%2Fjava%2Fwaterflow-core%2FREADME.md)，该指南将简单介绍 WaterFlow\n    声明式语法，并构建流程输出 `hello world！`。\n- FEL 标准原语\n  - 请参考 [FEL 快速开始](docs/framework/fel/java/quick-start-guide/01.%20模型.md)，该指南将简要介绍如何使用 FEL\n    构建端到端的大模型应用程序。\n\n## 文档\n\n您可以从 `docs` 目录查看项目的完整文档，文档包含框架的快速入门指南和用户指导手册，并以一个基于本框架开发的大模型应用编排平台（Model\nEngine）为例，向您介绍本框架在商业化的成熟产品中是如何应用的。\n\n- [ModelEngine 技术白皮书](docs/model-engine-technical-white-paper/00.%20摘要.md)\n- [FIT 快速入门指南](docs/framework/fit/java/quick-start-guide/01.%20构建基础%20Web%20应用.md)、[用户指导手册](docs/framework/fit/java/user-guide-book/01.%20插件%E3%80%81IoC%20容器和%20Bean.md)\n- [Waterflow 快速入门指南](docs/framework/waterflow/java/quick-start-guide/01.%20介绍.md)、[用户指导手册](docs/framework/waterflow/java/user-guide-book.md)\n- [FEL 快速入门指南](docs/framework/fel/java/quick-start-guide/01.%20模型.md)、[用户指导手册](docs/framework/fel/java/user-guide-book/01.%20AI%20流程.md)\n\n## 贡献\n\n欢迎贡献者加入本项目。\n请阅读 [CONTRIBUTING.md](CONTRIBUTING.md)，这将指导您完成分支管理、标签管理、提交规则、代码审查等内容。遵循这些指导有助于项目的高效开发和良好协作。\n\n## 联系我们\n\n1. 如果发现问题，可以在该项目的 `Issue` 模块内提出。\n2. 微信公众号：`FitFramework`。\n3. 微信技术交流群：通过公众号菜单“技术交流”点击获取最新群二维码。\n4. QQ技术交流群：`1029802553`。\n\n![wechat-gh](docs/resources/qrcode_for_wechat_gh.png)\n![qq-01](docs/resources/qrcode_for_qq_01.png)\n","funding_links":[],"categories":["开发框架"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FModelEngine-Group%2Ffit-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FModelEngine-Group%2Ffit-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FModelEngine-Group%2Ffit-framework/lists"}