尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

mLLMCelltype开发者指南:项目结构解析与为新LLM提供商贡献代码流程

mLLMCelltype开发者指南:项目结构解析与为新LLM提供商贡献代码流程 mLLMCelltype开发者指南项目结构解析与为新LLM提供商贡献代码流程【免费下载链接】mLLMCelltypeCell type annotation for single-cell RNA-seq using multi-LLM consensus项目地址: https://gitcode.com/gh_mirrors/ml/mLLMCelltypemLLMCelltype 是一个基于多 LLM 共识机制的单细胞 RNA 测序scRNA-seq细胞类型自动注释框架同时提供 R 与 Python 双语言实现。本文作为 mLLMCelltype 开发者指南带你快速看懂项目结构并完整走通为新 LLM 提供商贡献代码的流程——从定位接口契约到注册配置、编写处理器、补上测试最后提交 Pull Request。项目结构解析30秒看懂双语言仓库mLLMCelltype 采用一套算法、双端实现的布局R 包与 Python 包各自独立共享同一套提供商Provider 共识Consensus 缓存Cache的架构思想。目录职责新手关注点R/R 语言包CRAN 发布每个提供商一个*_processor.R文件R/R/R 核心源码提供商注册表在get_provider.RR/tests/R 单元测试testthat提供商测试在test-provider-*.Rpython/Python 包PyPI 发布提供商模块集中在mllmcelltype/providers/python/mllmcelltype/Python 核心包配置中枢config.py、注册逻辑functions.pypython/tests/Python 单元测试pytest提供商测试模板test_provider_kimi.pynotebooks/交互式教程与示例数据快速上手的首选入口CONTRIBUTING.md贡献规范总入口提交 PR 前必读两个关键文件决定了新提供商要往哪儿写代码Python 端python/mllmcelltype/config.py是官方注释的Single Source of Truth唯一事实源所有提供商的默认模型、API 地址、Key 环境变量名和模型名前缀都在这里集中声明。R 端R/R/get_provider.R中的.BUILTIN_PROVIDER_SPECS注册表记录每个提供商的模型名正则、处理器类名R6 类与 Key 环境变量别名。理解了这张地图贡献新提供商就只剩下照葫芦画瓢的活。新开发者环境搭建步骤克隆仓库并进入开发模式即可开始git clone https://gitcode.com/gh_mirrors/ml/mLLMCelltype cd mLLMCelltypeR 端在R/目录下install.packages(c(devtools, roxygen2, testthat)) devtools::load_all()Python 端在python/目录下pip install -e .[dev]验证环境可用的最低标准R 端运行devtools::test()、Python 端运行pytest全部测试通过。为新LLM提供商贡献代码的完整流程Python 端为例mLLMCelltype 的核心扩展点非常克制一个提供商 一份配置 一个处理函数 一次注册 一套测试。以接入一个 OpenAI 兼容接口的新提供商acme为例。第1步在 config.py 添加提供商配置在python/mllmcelltype/config.py的PROVIDER_CONFIGS字典中新增一条acme: ProviderConfig( default_modelacme-1-pro, api_key_env_varACME_API_KEY, default_api_urlhttps://api.acme.com/v1/chat/completions, model_prefixes(acme-,), )四个字段分别对应默认模型、Key 环境变量、默认端点、模型名前缀用于get_provider()自动识别。第2步编写提供商处理模块新建python/mllmcelltype/providers/acme.py。绝大多数 OpenAI 兼容提供商只需复用providers/common.py的公共工具build_chat_completions_body、call_openai_compatible_api、ensure_api_key、resolve_endpoint_url参考现成的最简实现 providers/deepseek.pydef process_acme(prompt, model, api_key, base_urlNone, usage_sinkNone, normalize_responseTrue): api_key ensure_api_key(api_key, Acme) url resolve_endpoint_url(acme, Acme, base_url) body build_chat_completions_body(modelmodel, promptprompt, temperature0.7, max_tokens4096) return call_openai_compatible_api( provider_nameAcme, api_keyapi_key, urlurl, bodybody, post_funcrequests.post, max_retries5, retry_delay3, timeout120, request_jsonTrue, usage_sinkusage_sink, normalize_responsenormalize_response, )⚠️函数签名契约python/mllmcelltype/functions.py会严格校验每个process_*函数的参数必须恰好是(prompt, model, api_key, base_url, usage_sink, normalize_response)且配置表与实现必须一一对应任何缺失都会在导入时抛出RuntimeError。第3步注册导出在python/mllmcelltype/providers/__init__.py中加一行导入并加入__all__from .acme import process_acmefunctions.py的注册表会自动扫描process_*前缀完成装配无需手工改注册逻辑。第4步补齐测试参考模板 tests/test_provider_kimi.py覆盖默认配置读取、模型前缀识别get_provider(acme-1-pro)应返回acme、模拟 HTTP 200/4xx 响应的解析行为。运行pytest tests/test_provider_kimi.py # 改名为你自己的测试文件R 端的对应改动R 包结构相同只是形式从函数换成了 R6 类新建R/R/acme_processor.R继承BaseAPIProcessor见R/R/base_api_processor.R在R/R/get_provider.R的.BUILTIN_PROVIDER_SPECS中登记模型名正则与类名在R/tests/testthat/下仿照test-provider-*.R补测试确保R CMD check通过。提交PR前的自检清单按 CONTRIBUTING.md 的规范提交前逐项确认本地测试全部通过devtools::test()/pytest新函数带完整文档注释R 用 roxygen2Python 用 docstring提交信息遵循type(scope): 简述格式type 取 feat / fix / docs / test 等需要时更新 CHANGELOG 与 README 的支持模型列表PR 描述写清改动摘要、测试情况并关联相关 issue维护者会在收到 PR 后约 48 小时内完成首轮评审。总结贡献流程一图流找对文件config.pyPython/get_provider.RR是唯一的登记入口写处理器优先复用common.py/BaseAPIProcessor保持签名契约注册 测试导入导出、前缀匹配、错误响应解析三块测试缺一不可按规范提交测试绿、文档全、CHANGELOG 同步mLLMCelltype 的扩展点设计得足够简单第一次贡献代码的开发者通常一天内就能让一个新 LLM 提供商跑进共识注释流程。祝你的 PR 顺利通过 【免费下载链接】mLLMCelltypeCell type annotation for single-cell RNA-seq using multi-LLM consensus项目地址: https://gitcode.com/gh_mirrors/ml/mLLMCelltype创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表