发布时间:2026/8/25 9:40:27
如何将 cookiecutter-spacy-fastapi 集成到 Azure Search:自定义认知技能实战教程 如何将 cookiecutter-spacy-fastapi 集成到 Azure Search自定义认知技能实战教程【免费下载链接】cookiecutter-spacy-fastapiCookiecutter API for creating Custom Skills for Azure Search using Python and Docker项目地址: https://gitcode.com/gh_mirrors/co/cookiecutter-spacy-fastapicookiecutter-spacy-fastapi 是一个开箱即用的 Python Cookiecutter 项目模板只需一条命令即可生成一个兼容Azure Search 自定义认知技能Custom Cognitive Skill的命名实体识别NERAPI 项目。它基于 spaCy FastAPI Docker 三大核心组件帮你把文本智能分析能力快速接入 Azure Search 认知搜索是新手构建企业级 NLP 技能服务的最短路径。一、它是什么为什么新手需要这个模板 先说清楚两个概念Azure Search 认知技能Cognitive SkillAzure Search 在索引文档时可以调用各种 AI 能力语言检测、实体识别、关键短语提取等把分析结果写回索引让搜索结果更懂你的数据。自定义认知技能如果你有一套自己的 AI 算法比如一个 Python API只要接口符合 Azure 规范就能注册为自定义认知技能融入 Azure Search 的技能流水线。而cookiecutter-spacy-fastapi解决的就是让你不用从零搭 API直接生成一个符合自定义认知技能接口规范的 NER 服务。核心组件作用spaCy工业级自然语言处理库负责加载模型并批量抽取实体FastAPI高性能 Python Web 框架自动生成 OpenAPI 文档Docker一键打包部署镜像内自动下载 spaCy 模型二、一条命令生成你的 NER 项目 ⚡1. 安装 Cookiecutterpip install --user cookiecutter2. 获取模板仓库git clone https://gitcode.com/gh_mirrors/co/cookiecutter-spacy-fastapi3. 运行生成器cookiecutter ./cookiecutter-spacy-fastapi生成器会依据cookiecutter.json中的变量定义交互式地向你询问 4 个问题变量说明project_name项目名默认为 spaCy FastAPI Azure Cognitive Skillproject_slug由项目名自动生成的目录名下划线格式short_description项目简介自动生成spacy_model关键选项选择 spaCy 官方预训练模型如en_core_web_sm回答完毕一个完整的可运行项目就落在你的磁盘上了 三、生成的项目结构一览 {{project_slug}}/ ├── app/ │ ├── api.py # FastAPI 路由/entities 与 /entities_by_type │ ├── models.py # 请求/响应模型 实体类型映射表 │ ├── spacy_extractor.py # SpacyExtractor 批量实体抽取封装 │ ├── data/example_request.json # 示例请求报文 │ └── tests/test_api.py # 接口自动化测试 ├── main.py # 本地启动入口uvicorn0.0.0.0:8080 ├── Dockerfile # 容器镜像构建脚本 ├── requirements.txt # 依赖清单 └── README.md # 运行与部署说明几个关键文件值得花 30 秒了解app/api.py应用启动时一次性加载 spaCy 模型spacy.load并注册两个 POST 路由这是整个技能的门面。app/spacy_extractor.pySpacyExtractor类使用nlp.pipe()对文档批量做实体抽取比逐条处理高效得多还负责把实体按名称归并、记录起止位置。app/models.py定义了RecordsRequest/RecordsResponse等 Pydantic 模型——这正是 Azure Search 自定义认知技能的标准请求/响应格式其中的ENT_PROP_MAP把 spaCy 的 18 种实体标签PERSON、ORG、LOC、DATE、MONEY……映射为技能接口友好的属性名people、organizations、locations、dates、money……。四、本地运行3 步调试你的 NER API 进入生成的项目目录按顺序执行cd ./你的项目目录 bash ./create_virtualenv.sh uvicorn app.api:app --reload然后打开浏览器访问http://localhost:8000/docs即可看到 FastAPI 自动生成的 OpenAPI 交互文档界面直接在线调试接口上图/entities接口的在线调试页面。把示例报文填入 Request body点击 Execute 即可看到 spaCy 抽取出的命名实体。项目还内置了app/data/example_request.json示例请求测试时可一键填入另有tests/test_api.py供你回归验证接口行为。五、两个接口一个灵魂/entities_by_type 生成的 API 暴露了两个端点理解它们的分工是接入 Azure Search 的关键1️⃣POST /entities—— 通用实体列表输入一批带recordId和text的记录返回每条记录抽取到的全部实体名称、标签、文本位置。适合本地开发调试或自有业务系统直接调用。2️⃣POST /entities_by_type—— 技能接口灵魂所在✨返回结果按实体类型分组例如一段文本会被整理为{ values: [ { recordId: a1, data: { organizations: [Microsoft], products: [Echo, Dot], people: [Siri, Alexa] } } ] }这个结构完全对齐 Azure Search自定义认知技能接口规范因此可以原样部署后注册进 Azure Search 的 Skillset 中。接入流程可以概括为你的文档 → Azure Search 索引器 → 调用你部署的 /entities_by_type 端点 → spaCy 批量抽取实体 → 实体写回索引字段 → 用户可按人名/机构/地点/日期精准检索简言之部署 → 在 Azure 门户的索引器 Skillset 中登记你的 API 地址 → 索引时自动跑 NER三步完成集成。六、用 Docker 一键部署上线 生成的Dockerfile已做好全部准备基于tiangolo/uvicorn-gunicorn-fastapi生产级基础镜像构建时自动执行spacy download {你选的模型}把 NLP 模型打进镜像服务监听 8080 端口默认 2 个 Web 并发构建并运行docker build -t my-ner-skill . docker run -p 8080:8080 my-ner-skill镜像推到容器注册表后即可部署到 Azure Kubernetes ServiceAKS等托管环境。项目的README.md中也提供了配合 Azure Pipelines 搭建 CI/CD 的指引方便持续交付。七、新手常见问题 FAQ Q1spacy_model 可以随便填吗不行。cookiecutter.json中明确要求它必须是 spaCy 官方预训练模型如en_core_web_sm、en_core_web_md等。小模型sm起步足够追求精度再升md/lg。Q2模型加载会不会拖慢每次请求不会。app/api.py在应用启动时只执行一次spacy.load请求阶段用nlp.pipe()批量推理性能友好。Q3我不打算用 Azure Search这个 API 还有用吗当然有。它就是一个标准 FastAPI 服务/entities接口可直接服务于任何需要实体抽取的业务场景Azure Search 集成属于锦上添花。Q4接口测试怎么跑项目内置tests/test_api.py启动服务后执行测试即可验证两个端点的行为是否符合预期。八、小结 步骤耗时说明生成项目~1 分钟一条 cookiecutter 命令本地调试~5 分钟uvicorn 启动 OpenAPI UI 在线测试容器化部署~10 分钟Docker 构建 推送注册表接入 Azure Search视环境在 Skillset 中登记 API 端点cookiecutter-spacy-fastapi 把spaCy 模型 FastAPI 服务 Docker 部署 Azure Search 技能规范这四件事打包成了一条命令。对新手而言它是理解自定义认知技能接口规范的最佳范本对团队而言它是把自研 NLP 能力接入 Azure Search 认知搜索的快速通道。现在去生成你的第一个命名实体识别技能吧 【免费下载链接】cookiecutter-spacy-fastapiCookiecutter API for creating Custom Skills for Azure Search using Python and Docker项目地址: https://gitcode.com/gh_mirrors/co/cookiecutter-spacy-fastapi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/8/25 9:40:27

styled-css-grid API速查:Grid与Cell全部属性完整参考清单

styled-css-grid API速查:Grid与Cell全部属性完整参考清单 【免费下载链接】styled-css-grid 🍱 A tiny CSS grid layout for React 项目地址: https://gitcode.com/gh_mirrors/st/styled-css-grid styled-css-grid 是一个仅约 2kb 的 React CSS …

2026/8/25 12:06:07

单例模式深度解析:从线程安全到Spring框架实战

单例模式,可能是你面试时被问得最多、工作中用得最广,但也是最容易被“用错”的设计模式。很多人以为单例就是“一个类只能有一个实例”,然后随手写个private static变量就完事了。但真正的问题在于:在多线程环境下,你…

2026/8/25 12:06:07

Anycast 任播 网络协议深入:原理、配置与排障

Anycast 任播 网络协议深入:原理、配置与排障工具地址:https://www.speedce.com 社区论坛:https://bbs.speedce.com 联系:speedceadsgmail.com写在前面 围绕「Anycast 任播」,本文提供可落地的技术指南,并在…

2026/8/25 12:06:07

mysql like也是b+Tree索引吗

like也是bTree索引吗一、直接回答 是的,当 LIKE 查询能用到索引时,用的就是 BTree 索引,因为 MySQL 中默认的索引结构就是 BTree。但关键在于 BTree 的有序性决定了什么样的 LIKE 查询能用索引。二、BTree 为什么支持 LIKE ‘abc%’&#xff…

2026/8/25 12:06:07

Live2D模型集成实战:从原理到Web与Unity跨平台部署

最近在逛一些技术社区和开源项目时,我发现一个有趣的现象:越来越多的开发者,尤其是独立游戏开发者和虚拟主播技术栈的从业者,开始热衷于将高质量的 Live2D 模型集成到自己的项目中。这背后反映的,远不止是“让角色动起…

2026/8/25 12:06:07

构建高可玩性无人机虚拟座舱:从概念到Unity实践

在实际无人机开发与模拟训练领域,虚拟座舱技术正成为连接软件仿真与硬件操作的关键桥梁。它不仅仅是飞行数据的可视化界面,更是开发者进行算法验证、飞控调试以及用户体验设计的核心平台。对于“影翎无人机”这类强调“AG向自由飞”(即反重力…

2026/8/25 12:01:06

LangChain:ChatModel 聊天模型与可配置模拟器

目录 一、什么是聊天模型 1.1 什么是消息 1.2 模型的分类 1.2.1 真实聊天模型 1.2.2 可配置模拟器模型 1.3 与LLM的区别 1.4 注意事项 二、通过API来定义聊天模型 2.1 ChatDeepSeek 2.2 init_chat_model 2.2.1 函数定义 2.2.2 实例1:创建无配置模型 2.…

2026/8/25 1:04:19

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 11:48:27

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 8:17:29

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 0:04:14

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

2026/8/25 0:04:14

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…