云原生后端【免费下载链接】fissionFast and Simple Serverless Functions for Kubernetes项目地址https://gitcode.com/gh_mirrors/fi/fission点击查看免费下载本篇技术指南以 FissionKubernetes 原生 Serverless 框架Go 编写仓库根部的CLAUDE.md为核心骨架面向需要在这套代码库中开发、调试与维护的工程师与 AI 编码助手。它覆盖了从日常构建/测试命令、代码生成流程、本地集群开发、集成测试规范到 fission-bundle 多子系统架构与各类易踩坑细节的完整知识面。读完本文你将能独立完成一次从改代码、过 CI 门禁到本地跑通 kind 集群的全流程并理解 router、executor、buildermgr 等子系统如何在一个二进制中共存与协作。1. 项目全景控制面与数据面的模块划分Fission 是一个 Kubernetes 原生的 Serverless 框架控制面以单一多子系统二进制fission-bundle的形式交付同一个二进制通过不同的启动标志变成不同的服务。用户通过fissionCLI 直接与 Kubernetes API 交互创建 CRD控制器在集群内完成协调函数则在 executor 管理的 per-environment Pod 内执行。仓库的模块分布可以从顶层目录直接看出cmd/fission-bundle/— 控制面多子系统二进制cmd/fission-bundle/main.go是统一分发点cmd/fission-cli/与pkg/fission-cli/— 用户侧 CLIcmd/builder/、cmd/fetcher/— 每个环境environment配套的构建与代码拉取 sidecarpkg/apis/core/v1/— 所有核心 CRD 类型定义Function、Package、Environment、HTTPTrigger、KubernetesWatchTrigger、MessageQueueTrigger、TimeTrigger、CanaryConfig校验逻辑也在同一包validation.gopkg/executor/、pkg/router/、pkg/buildermgr/、pkg/storagesvc/等 — 各子系统实现crds/v1/— 由 Go 类型生成的 CRD YAMLcharts/fission-all/— Helm 部署图将fission-bundle以不同标志部署多次。值得注意的是pkg/apis/core/v1/types.go顶部有一段注释详细描述了新增 CRD 类型的 10 步清单创建 spec 类型 → 类型 → list → 注册 → CRUD 接口 → 重新生成这是扩展 Fission API 的规范入口。2. 日常开发命令构建、静态检查与单测所有命令从仓库根目录执行。Makefile是统一的命令入口make help可查看全量目标.DEFAULT_GOAL : check表明make check是全量门禁。2.1 CLI 构建与安装make build-fission-cli # 通过 goreleaser 构建 fission CLIsnapshot、单目标 make install-fission-cli # 拷贝到 /usr/local/bin/fissioninstall-fission-cli通过 glob 解析dist/fission-cli_$(GOOS)_$(GOARCH)*/目录goreleaser 会按微架构等级为目录加后缀如 amd64 的_v1因此不硬编码路径如果先运行构建再安装会提示先执行make build-fission-cli。2.2 静态检查CI 门禁make code-checks # golangci-lint run配置在 .golangci.yamlgoimports 本地前缀为 github.com/fission/fission make verify-gomod make license-check # CI 的 license 门禁在 push 前运行 make antislop # 低证据 Go 模式分析器any 签名、reflect、结构命名等对照 hack/antislop-baseline.txt 阈值antislop目标值得一提它针对pkg/workflow这类必须处理任意用户 JSONRFC-0022 Step Functions 对齐而无法用命名类型解码的模块建立棘轮式基线——新增的违规会让门禁失败减少的可以重新记录。pkg/router因 RFC-0013 的 route shape 词汇暴露在指标 label 中被-nostructuralnames.exclude豁免。2.3 License 头新源文件必须带 SPDX 头否则lintCI 失败make license # 为缺失 .go/.sh/.py/Dockerfile* 的文件添加 SPDX-FileCopyrightText SPDX-License-Identifier: Apache-2.0 make license-check # CI 门禁模板位于hack/license-header.tmpl生成代码的头来自hack/boilerplate.go.txt因此该文件而非生成输出才是生成代码头的唯一事实来源。旧式 15 行 Apache 头已彻底移除不要重新引入。2.4 单元测试make test-run # 运行 hack/runtests.sh make check # 全量本地门禁 test-run build-fission-cli cleanhack/runtests.sh的核心逻辑hack/runtests.sh值得剖析破坏性防护如果$KUBECONFIG指向的集群default命名空间存在ok-to-destroyConfigMap会删除该命名空间下所有 Fission CRfunctions、environments、httptriggers、kuberneteswatchtriggers、messagequeuetriggers、packages、timetriggers。不要把它指向共享集群通过go tool setup-envtest -p path use 1.32.x拉取 Kubebuilder envtest 资产k8s 1.32.x并导出KUBEBUILDER_ASSETS执行go test -race -v -coverprofilecoverage.txt -covermodeatomic --coverpkg./... ./...。跑单个 Go 测试时如果包需要 envtest先设置环境KUBEBUILDER_ASSETS$(go tool setup-envtest -p path use 1.32.x) go test -race -run TestName ./pkg/router/...2.5 依赖布局门禁make verify-gomod # 检查 go.mod 的 direct/indirect 依赖分块hack/verify-gomod.sh用 awk 校验必须恰好一个 directrequire (...)块、一个 indirect// indirect块两者不得混在同一块中也不允许单行require。CI 的 Verify dependencies 步骤强制执行。从 Go 1.27 起go mod tidy本身就会维护这种布局会把误入 indirect 块的 direct 依赖移回 direct 块因此该守卫主要针对不做 tidy 的手工编辑。3. 代码生成改完 types.go 之后必做的三件事编辑pkg/apis/core/v1/types.go之后必须重新生成代码否则 CI 失败make codegen # 重新生成 pkg/generated/ 下的 clientset/listers/informers deepcopy make generate-crds # 从 Go 类型重新生成 crds/v1/ 下的 CRD YAML make generate-webhooks # 从 pkg/webhook/ 的 kubebuilder:webhook 标记生成 webhook 配置 make all-generators # 以上全部 swagger 文档 CLI/CRD 参考文档codegen背后的hack/update-codegen.sh有一个巧妙设计上游 client-gen 无法为PackageCRD 生成客户端gengo 的 private 命名系统会把Package转成 Go 关键字package。项目没有 forkk8s.io/code-generator而是把模块从只读的 module cache 复制到临时目录用hack/codegen/clientgen/main.go替换cmd/client-gen/main.go包装 namer再调用kube_codegen.sh生成——不涉及任何replace指令。generate-webhooks的输出落在bin/webhooks/gitignored而chart 中手工维护的charts/fission-all/templates/webhook-server/webhooks.yaml才是权威 Helm 模板生成的manifests.yaml是参考快照用于将标记变更同步到 chart——改完标记后应 diff 并将新规则同步过去。铁律pkg/generated/、zz_generated_*.go、crds/v1/的 CRD YAML 全部是生成产物改源类型而非输出。4. 本地集群开发kind skaffoldkind create cluster --config kind.yaml kubectl create ns fission make create-crds # 应用 crds/v1 下的 CRD SKAFFOLD_PROFILEkind make skaffold-deploys skaffold-deploy依赖skaffold-prebuild后者先用 goreleaser 构建 linux/amd64 二进制到dist/再把cmd/builder/Dockerfile、cmd/fetcher/Dockerfile、cmd/fission-bundle/Dockerfile、cmd/reporter/Dockerfile、cmd/preupgradechecks/Dockerfile复制进各产物目录最后skaffold run -p $(SKAFFOLD_PROFILE)Helm 安装charts/fission-all。其他可用 profilekind-debug— pprof debugEnvkind-ci— 完整可观测性OpenTelemetry 等kind-opentelemetry— OpenTelemetry 专项。如果构建看起来过期了make clean后重跑。5. 集成测试框架、套件划分与运行方式集成测试位于test/integration/Go testify构建标签//go:build integration要求一个正在运行的 Fission 集群通过KUBECONFIG可达。设计上有几个关键点5.1 无需 kubectl port-forward测试框架使用go-portless注册表将router.fission/router-internal.fission/mcp.fission以进程内 port-forwardSPDY每次拨号重新解析 Pod的方式注册命名空间来自FISSION_NAMESPACE默认fission。若需手工转发或非默认安装可设置FISSION_ROUTER/FISSION_ROUTER_INTERNAL/FISSION_MCP_BASE_URL覆盖为固定地址。由于 base-URL 主机是无端口的路由名普通http.Client无法解析它们——测试必须走框架的Router(t)HTTP 客户端或f.HTTPClient()。5.2 内部监听器调用与认证GHSA-3g33-6vg6-27m8 之后/fission-function/ns/name已从公共监听器移出详见第 6 节。测试通过以下方式绕过导出FISSION_INTERNAL_AUTH_SECRET从kubectl get secret fission-internal-auth -n fission -o jsonpath{.data.secret} | base64 -d读取让框架的 transport 对内部监听器请求签名不设置则测试 verifier 的 pass-through 模式。5.3 套件划分与运行# 完整套件并行 common 套件 go test -tagsintegration -timeout30m -parallel 6 -v ./test/integration/suites/common/... # 单测 go test -tagsintegration -run TestNodeHelloHTTP -v ./test/integration/suites/common/...必须设置运行时/构建器镜像环境变量NODE_RUNTIME_IMAGE、PYTHON_RUNTIME_IMAGE等测试在镜像未设置时会t.SkipTEST_NOCLEANUP1保留资源便于调试suites/serial/存放会改变集群级控制面状态的测试如重启 executor 以触发AdoptExistingResources不能与并行 common 套件同跑。CI 在同一 step 中、单包-p 1运行它们go test -tagsintegration -p 1 ./test/integration/suites/serial/...。重启 executor 通过framework.SetExecutorEnvWaitForExecutorRollout完成——rollout 完成意味着新 Pod 的 adopt 已执行/readyz以cachesSynced为准而它是在runAdoptCleanup之后设置的MCP 测试TestMCPToolsListAndCall需要集群中存在svc/mcpkind/kind-ci profile 中mcp.enabled/mcp.allowInsecure为开端点不可达时自动t.Skip框架参考 新增测试 12 步指南见docs/test-migration/02-framework-api.md旧的 bash 测试套件test/tests/、test/run_test.sh等已于 2026-05 退役迁移历史在docs/test-migration/。6. 架构深入fission-bundle 的分发表与请求路径6.1 一个二进制多种服务cmd/fission-bundle/main.go是控制面所有子系统的分发点。核心机制是bundleServices()返回的分发表bundleService结构体数组每个条目包含 OTEL 服务名、选择谓词和 runner按顺序首个匹配生效标志服务对应 pkg--routerPortFission-Routerpkg/router--executorPortFission-Executorpkg/executor--kubewatcherFission-KubeWatcherpkg/kubewatcher--timerFission-Timerpkg/timer--mqtFission-MessageQueueTriggerpkg/mqtrigger--mqt_kedaFission-Keda-MQTriggerpkg/mqtriggerscaler manager--builderMgrFission-BuilderMgrpkg/buildermgr--canaryConfigFission-CanaryConfigpkg/canaryconfigmgr--webhookPortFission-Webhookpkg/webhook--storageServicePortFission-StorageSvcpkg/storagesvc--mcpPortFission-MCPpkg/mcp--workflowPortFission-Workflowpkg/workflow--statestorePortFission-Statestorepkg/statestore/statestoresvc--stateApiPortFission-StateSvcpkg/statesvc--tenantControllerFission-TenantControllerpkg/tenant--seedTenantsFission-SeedTenants一次性 Jobpkg/tenant分发表同时驱动 OTEL 服务名getServiceNameFromArgs因此服务名与分发逻辑永远不会漂移。--seedTenants是 Helm post-install/post-upgrade Job 形态的一次性钩子oneShot: true以 run 的返回值决定进程退出码。启动时统一调用fv1.ValidateInternalAuthEnv()做 fail-closed 检查并用ctrl.SetLogger让 controller-runtime 的日志也汇入项目 logger。地址解析所有兄弟服务的 URL 通过pkg/svcinfo/resolver.go的AddressResolver单一接缝获得优先级为命令行 URL 标志 → 服务级环境变量覆盖仅ROUTER_INTERNAL_URL存在且对 publisher 而言压过--routerUrl→ 基于POD_NAMESPACEdownward API的集群内默认未设置时回退到历史命名空间fission。端口与服务名常量的唯一事实来源是pkg/svcinfo/svcinfo.goHelm chart 镜像这些值test/helm的TestChartPortsMatchSvcinfo断言渲染结果与常量一致。6.2 HTTP 触发函数的完整请求路径pkg/router接收 HTTP 请求经functionReferenceResolver将 trigger 解析为函数在functionServiceMap中查服务 URL 并代理请求mux 是mutablemuxtrigger 变化时热切换路由缓存未命中时router 通过 HTTPpkg/executor/client向pkg/executor请求函数服务 URLpkg/executor/executortype/{poolmgr,newdeploy,container}提供三种执行后端poolmgr是默认的暖池路径预先创建通用 env Pod需要时调用fetcher加载用户包完成特化newdeploy为每个函数创建 DeploymentServicecontainer直接运行任意用户容器镜像pkg/buildermgr监听处于pending状态的PackageCRD运行环境的buildersidecar内部调用pkg/builder产出部署归档并上传到pkg/storagesvc本地 FS 或 S3。6.3 Router 双监听器拆分GHSA-3g33-6vg6-27m8 之后pkg/router/router.go中Start启动两个 HTTP 监听器公共监听器端口 8888svc/router用户 HTTPTrigger /router-healthz/_version内部监听器端口 8889仅 ClusterIP 的svc/router-internal/fission-function/ns/name调用用pkg/auth/hmac.ServiceVerifier包裹密钥由FISSION_INTERNAL_AUTH_SECRET为ServiceRouterInternal派生空密钥 显式 pass-through靠 NetworkPolicy 兜底。内部监听器还被DenyAllCORS包裹浏览器预检在 HMAC 缓冲 body 之前就以 403 拒绝最外层是SecurityHeaders所有响应带 nosniff Vary: Origin。增量路由更新RFC-0013reconciler 对pkg/router/routetable应用逐事件 diffhandler 位于原子HandlerRef之后canary 权重 tick 和函数更新都是指针交换、不重建 mux只有 route-shape 变化才触发去抖的 materializer60 秒 cache 驱动的 resync 作为漂移守卫fission_router_route_resync_drift_totalCI 基线为零同时会重新武装失败的 materialize。变更检测基于 Generation与 reconciler 的GenerationChangedPredicate一致而非 ResourceVersion。任何影响 mux 构造的设置如USE_ENCODED_PATH必须在newListenerMuxes内部应用——只在启动时应用会在第一次原子 mux 交换时被静默丢弃。路由优先级是明确规定的hosted host-less、exact prefix、最长前缀、creationTimestamp 决胜重复 shape 会遮蔽较新的 trigger 并标记RouteAdmittedFalse/RouteConflict。6.4 EndpointSlice 数据面RFC-0002默认开启router.endpointSliceCache.modeon默认时router 为 poolmgr暖流量直接服务 slice 驱动的 endpoint 索引pkg/router/endpointcache每个副本一个 informer、无 leader election而不再每次请求都 RPC executor——router admits, executor provisions。executor 通过每个函数的异步 headless 选择器 Servicepkg/executor/executortype/poolmgr/gp_service.go发布特化 Pod配合fission.io/served与fission.io/function-generation标签。冷启动 RPC 路径约 100ms在开关开/关时字节级一致。endpointLB默认 false额外直接拨号 newdeploy/container 的 Pod IP。启动时会做SelfSubjectAccessReview预检checkSliceWatchRBAC若 router 缺少 EndpointSlice 的 list/watch RBAC会响亮地降级到 modeoffexecutor-RPC 数据面而不是崩溃循环——因为 warm-path 优化缺失不应变成 outage。动态租户模式下用 per-namespace informer 并实时重定范围dynamicEndpointCache。CI 有一条腿固定关闭该数据面push_pr.yaml的 Pin legacy data plane确保旧路径持续被覆盖。6.5 其他触发器与发布者pkg/kubewatcher监听任意 k8s 资源、pkg/timercron、pkg/mqtriggerKafka/NATS 等另有 KEDA 驱动的 scaler manager、pkg/canaryconfigmgrHTTPTrigger 上两个函数间的渐进流量切换都向内部监听器发布/fission-function/...请求。cmd/fission-bundle/main.go从环境解析一次ROUTER_INTERNAL_URL作为routerUrl参数传入各子系统——库构造函数如publisher.MakeWebhookPublisher必须保持确定性不读环境这样httptest.Server的单测才不会坏。6.6 MCP 子系统RFC-0011pkg/mcp--mcpPortHelmmcp.enabled默认关把 opt-in 的函数暴露为 MCP 工具给 LLM Agent走官方github.com/modelcontextprotocol/go-sdk的 Streamable HTTP transport/mcp挂在仅 ClusterIP 的svc/mcp。函数通过可选的FunctionSpec.Tool *ToolConfig字段 opt-in字段存在即开关含Description 原始 JSONInputSchema 可选ToolName。启动镜像pkg/timer但无 leader election——每个副本各自协调 Function CRD 到内存*mcp.Registry并服务完整工具列表。Streamable HTTP transport 是无状态的StatelessSEP-2567这正是mcp.replicas 1在普通 ClusterIP 后面成立的原因AddTool对不喜欢的工具会panic因此有双重防护admission 路径跑ToolConfig.Validatereconciler 在Registry.Upsert之前用 SDK 探针validateToolRegistrable。tools/call默认缓冲代理到内部监听器utils.UrlForFunction会把默认命名空间折叠成/fission-function/name用与其他 publisher 相同的ServiceRouterInternalHMAC key 签名。AuthZ 用 bearer JWTJWT_SIGNING_KEY与 router secret 共享allowed_namespacesclaim 限定tools/list/tools/callfail closed——无 key 且MCP_ALLOW_INSECURE ! true时Start拒绝启动。6.7 CRD 与 CLI 的交互模型pkg/crd/client.go通过ClientGenerator装配 typed clients这是fission-bundle每个Start函数接收的依赖。pkg/webhook/是 controller-runtime 的 validating/mutating admission webhookYAML 由 kubebuilder 标记生成到charts/fission-all/templates/webhook-server/。CLI 不走控制器cmd/fission-clipkg/fission-cli通过生成的 clientset 直接与 Kubernetes 交互——它创建/更新 CRD控制面中的控制器再协调。7. 依赖管理约定go.mod将direct依赖放在第一个require (...)块indirect// indirect放在第二个块约定文档go-mod-conventions.md任何go get之后运行go mod tidyGo 1.27 起它自己维护此布局make verify-gomod是 CI 守卫。go.mod 声明go 1.27.0可以注意到模块名是github.com/fission/fission依赖覆盖了github.com/kedacore/keda/v2KEDA MQTrigger、github.com/modelcontextprotocol/go-sdkMCP、github.com/robfig/cron/v3Timer、github.com/IBM/saramaKafka等控制面关键依赖。8. 测试编写约定编写或修改测试时遵循test-writing-guidelines.md要点用testify前置条件用require独立检查用assert不用手写比较用t.Context()而非context.Background()单测优先 fake clientset 而非 envtest表格驱动子测试 t.Parallel()时间相关代码用testing/synctest气泡不 sleep、无 clock seam属性测试用pgregory.net/rapid绝不用已冻结的testing/quick对 parser/verifier 边界做 fuzz并发/一致性主张要枚举崩溃点并用porcupine验证。9. 仓库维护 Playbook深度运维知识存放在.claude/resources/下的fission-*.md文档中由通用 CI/依赖/triage skill 按需加载。CI 变红或触碰构建/依赖机制时先从这些开始fission-ci-failure-patterns.md— 症状→原因对照表、NetworkPolicy 选择器/白名单、kind-ci profile 的 CI 专用 Helm 标志fission-build-pipeline.md— buildermgr→builder→fetcher→storagesvc 流程、/packages权限、为何 env-builder 镜像不随 PR 重建fission-integration-test-quirks.md— builder/runtime 就绪竞争、Pod 标签约定、框架陷阱fission-dep-groups.md— k8s/controller-runtime/KEDA/code-generator 的锁定升级、prometheus/common排除、平台升级后的 codegenfission-workflow-tools.md— 固定的 CI 工具清单与有意的过期 pin。10. 易踩坑清单Things that bite以下是 CLAUDE.md 与源码共同确认的高发陷阱开发时请对照检查改完 types.go 必须重新生成make codegenmake generate-crds改了 webhook 标记还要make generate-webhooks生成产物一律不手改。runtests.sh 的破坏性删除$KUBECONFIG目标集群default命名空间存在ok-to-destroyConfigMap 时会删除所有 Fission CR——别指向共享集群。macOS 上 E2E 测试需要 GNU coreutils在PATHBSD 版本行为静默不同。新文件缺 SPDX 头会让 lint 失败make license补上生成代码头以hack/boilerplate.go.txt为准。新增调用 router 内部监听器端口 8889的 Pod 必须加入 NetworkPolicy 白名单charts/fission-all/templates/router/networkpolicy.yaml的fromallowlist 按svc:标签添加否则请求在 CI 中被静默丢弃症状dial tcp clusterIP:8889: i/o timeout。构造/fission-function/ns/nameURL 必须用utils.UrlForFunction(name, namespace)它把默认命名空间折叠为/fission-function/name这正是 router 实际注册的形式硬编码/fission-function/default/name无法解析。文件投影路径相对/secrets与/configs根RFC-0030 §4generic pool Pod 共享池创建时冻结的固定 emptyDir 集绝对路径根本无法物化。用fv1.ObjectSubPath(mountPath, namespace, name)推导目标目录——admission、fetcher、container executor 都调用它。两个隐性陷阱无 mountPath 的引用仍占用namespace/name写入的文件名是引用对象的data keysadmission 后可变所以拒绝跨对象覆盖的是 fetcher 而非 webhook。Poolmgr 请求计数有两条互斥模式router-admitted 请求索引Admit通过ResolvedEntry.Release闭包递减executor-resolved 请求通过 UnTap RPC 进入PoolCache.activeRequests。给 executor-resolved 条目调 Release或跳过 UnTap会破坏 executor 的并发计数——Release ! nil⟺ router-admitted。gorilla/mux 的Route.Methods()会就地大写传入的切片并作为 matcher 持有传共享切片informer 对象字段或路由表规范 spec会改写属主并在 churn 下与仍在服务的旧 mux 的 matcher 竞争。必须传克隆registerRouteShape就是这么做的该竞争只在-race 并发 buildserve 下浮现。EXECUTOR_SPECIALIZATION_CONCURRENCY是全体 executor 类型共享的一个信号量过小的边界会让 newdeploy 长达数分钟的waitForDeployment占用阻塞 poolmgr 约 100ms 的特化队头阻塞表现为 CI 中的大规模冷启动超时。除非证实纯 poolmgr 压力否则保持 0无界。FISSION_INTERNAL_AUTH_SECRET显式为空 pass-through首次部署/迁移安装可用但安全性依赖 NetworkPolicy 仍然封锁端口 8889。pkg/generated/与 CRD YAML 的生成hack/update-codegen.sh会临时复制上游k8s.io/code-generator模块来绕过Package关键字问题——不要试图手动修改生成逻辑。11. 快速参考核心命令速查表场景命令全量本地门禁make check静态检查make code-checks单测make test-run或go test -race -run TestName ./pkg/...构建 CLImake build-fission-cli安装make install-fission-cli改完 types.gomake codegen make generate-crdsmake generate-webhooks本地集群kind create cluster --config kind.yaml→make create-crds→SKAFFOLD_PROFILEkind make skaffold-deploy集成测试commongo test -tagsintegration -timeout30m -parallel 6 -v ./test/integration/suites/common/...集成测试serialgo test -tagsintegration -p 1 ./test/integration/suites/serial/...依赖布局校验make verify-gomod这份指南覆盖了从日常构建到架构原理再到调试陷阱的完整链路。无论是修复一个 CI 失败、新增一个 CRD 类型还是理解一次函数调用的完整旅程都可以以上述仓库路径为锚点继续深入源码——例如从cmd/fission-bundle/main.go的分发表出发顺着pkg/router/router.go的Start走到serve与两个监听器的装配再通过pkg/svcinfo/svcinfo.go的端口常量表对齐 Helm chart 的渲染值即可构建出完整的控制面心智模型。赞分享云原生后端【免费下载链接】fissionFast and Simple Serverless Functions for Kubernetes项目地址https://gitcode.com/gh_mirrors/fi/fission点击查看免费下载相关推荐Kanna高级用法XML/HTML文档修改与节点操作的7个实用案例Kanna高级用法XML/HTML文档修改与节点操作的7个实用案例 Kanna是一款强大的Swift XML/HTML解析器它不仅能高效解析文档还提供了丰云原生后端Apache Cassandra 仓库的 AI 辅助开发指南构建、测试与代码检查实战Apache Cassandra 仓库的 AI 辅助开发指南构建、测试与代码检查实战 Apache Cassandra 是开源的分布式 NoSQL 数据库以数据库分布式数据库大数据后端SQLite 源码仓库 AI Agent 协作开发指南构建、测试与架构速查基于 AGENTS.mdSQLite 源码仓库 AI Agent 协作开发指南构建、测试与架构速查基于 AGENTS.md 本文是一份面向在 SQLite 官方源码仓库中工作的数据库关系型数据库嵌入式数据库上一篇MerlinNVIDIA打造的高效能AI模型推荐系统下一篇Tabby: 现代化、可自定义的终端神器创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
PaddleNLP 文本信息抽取应用实战:基于 UIE 微调的数据标注、模型训练与封闭域蒸馏全流程指南 人工智能大模型预训练微调LoRARLHF强化学习分布式训练 【免费下载链接】PaddleNLP Easy-to-use and powerful LLM and SLM library with awesome model zoo. 项目地址: https://gitcode.com/gh_mirrors/pa/PaddleNLP 点击查看 免费下载 本文以 PaddleNLP 信息抽取应… · 2026/9/25 2:14:28
手把手搭建可调试PMSM FOC仿真模型 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 2:44:32
使用 KenLM 在 PaddleSpeech 中训练中文 N-gram 语言模型:从字符/词级建模到 ASR 解码集成 人工智能语音音频 【免费下载链接】PaddleSpeech Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword… · 2026/9/25 2:44:32
Blender插件精选:模型格式转换FBX/GLB/USD避坑指南 Blender插件精选:模型格式转换FBX/GLB/USD避坑指南 【免费下载链接】awesome-blender 🪐 A curated list of awesome Blender addons, tools, tutorials; and 3D resources for everyone. 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-b… · 2026/9/25 2:44:26
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37