CodeFuse让研发团队按任务选择和部署代码智能工具:用项目代码与文档构建问答助手,用静态分析提取代码关系,或为函数生成单元测试。它同时提供模型微调与推理缓存组件,适合希望控制模型、数据和运行环境的开发者,而使用者需要分别配置所选项目的依赖与服务。
围绕研发任务组合独立开源组件
CodeFuse将模型训练、知识检索、代码分析和测试生成拆为不同项目。已有模型的团队可以从助手或测试组件开始,需要适配训练数据时再使用MFTCoder;需要分析代码结构时则运行CodeFuse-Query。各仓库有自己的部署说明和模型要求,能力之间可以作为技术选型的组合,但选择一个组件不会自动部署整套研发流程。
用代码库与文档构建研发助手
CodeFuse-ChatBot把文档知识库、代码库理解、工具调用与沙箱执行放入多智能体助手框架。准备项目材料后,可通过检索增强生成组织回答,也能围绕代码仓库进行解释与生成。模型层支持通过FastChat接入开源模型,也支持外部模型API;使用本地模型与嵌入服务时,可按官方方案搭建私有环境,数据处理与模型调用方式由部署配置决定。
在多任务微调中平衡训练数据
MFTCoder面向需要训练或适配代码模型的开发团队,处理不同任务样本量、难度和收敛进度不一致的问题。训练可选择LoRA、QLoRA或全参数方式,并有基于Accelerate、DeepSpeed或FSDP的运行路径。训练完成后,使用LoRA的项目可将适配器与基础模型权重合并,再衔接推理部署;这部分需要自行准备数据、基础模型与训练资源。
把源码结构转为可查询的分析事实
CodeFuse-Query通过COREF提取器从源码生成结构化事实,再使用基于Datalog的Godel语言编写分析查询。可用信息包括语法结构、调用关系和类层次,具体覆盖范围随语言提取器而异。开发者可用Sparrow命令行工具执行提取和查询,把复杂代码问题转成可重复运行的规则;Java、JavaScript、TypeScript和Go等语言有对应支持,部分其他语言处于测试阶段。
按语言与任务生成测试代码
Test-Agent将TestGPT模型与部署框架结合,提供单元测试生成和断言补全入口。官方任务范围包括Java、Python及JavaScript的测试生成,断言补全则面向Java。配置模型并启动控制器、模型工作进程和Gradio界面后,可以在页面选择相应任务并提交代码,获取待检查的测试内容,再结合项目依赖运行与调整。
用语义缓存复用模型回答
ModelCache在模型调用前查询已有结果,通过嵌入表示和相似度判断复用相近请求的回答。组件提供缓存写入、查询与删除接口,并可按租户和模型隔离数据。演示部署使用SQLite与FAISS,标准方案可连接MySQL与Milvus;开发者还能配置相似度阈值及多轮对话相关策略。更换模型或回答逻辑后,需要同步管理缓存,避免继续使用不适合当前服务的结果。
在桌面编辑器中修复诊断与生成命令
CodeFuse IDE基于OpenSumi构建,提供面向编码的AI交互并兼容VS Code扩展生态。0.7.0版本可在光标靠近Lint诊断错误时给出改写提示,按Tab应用;终端中输入井号可唤起自然语言命令面板,选择生成的候选命令后填入终端,再由用户执行。该发行版提供Windows x64、macOS Intel和Apple芯片安装包,适合希望从客户端开始体验的开发者。
从部署代码知识助手开始
- 选择对应仓库:从官网或官方GitHub组织进入CodeFuse-ChatBot,先阅读其依赖和启动说明,准备项目代码或研发文档作为知识材料。
- 准备运行环境:按仓库要求配置Python环境并安装依赖;根据本地模型或外部API的选择,准备模型文件、嵌入服务及必要的计算资源。
- 配置模型与服务:在项目配置中填写模型和服务信息,按文档启动服务,再通过网页配置入口完成相应设置并启动对话服务。
- 建立任务上下文:使用文档知识库或代码仓库相关入口整理材料,选择需要的工具与助手流程,让问题对应到实际项目内容。
- 检查回答与代码:提交具体研发问题,查看回答或生成内容;涉及代码执行、依赖和测试结果时,在项目环境中继续验证后再采用。
适合已有代码与模型工程基础的团队
- 维护既有项目:将代码仓库和研发文档接入助手,围绕模块职责、接口关系和实现位置提问,用回答辅助定位后续修改范围。
- 制定代码检查规则:以项目源码为输入,用Query提取关系并编写Godel查询,将反复需要检查的结构问题整理成可运行规则。
- 补充函数测试:为Java、Python或JavaScript代码生成测试草稿,开发者补齐项目依赖与断言,再运行测试检查真实行为。
- 适配内部代码模型:准备多个研发任务的数据,选择MFTCoder训练方式与基础模型,完成微调后将结果用于后续推理服务。
- 维护模型调用服务:将重复或相近问答交给ModelCache检索,配置隔离范围与阈值,并在模型或知识内容变化后清理相关缓存。
用户评价与讨论
暂无评价,来发表第一条评价吧。