mirror of
https://github.com/modelscope/FunASR.git
synced 2026-10-12 02:19:18 +00:00
docs: clarify Langflow release availability and tested entry points (#3689)
Document the reviewed integration without claiming availability in current stable packages. Signed-off-by: zhifu gao <[email protected]>
This commit is contained in:
@@ -26,7 +26,7 @@ These integrations are community-maintained. Their release cadence, hardware sup
|
||||
| [NarratoAI](https://github.com/linyqh/NarratoAI) | An AI video narration and editing app whose OpenAI-compatible transcription endpoint can point subtitle generation at a self-hosted FunASR service. | [FunASR subtitle service](https://github.com/linyqh/NarratoAI/blob/main/app/services/fun_asr_subtitle.py), [configuration example](https://github.com/linyqh/NarratoAI/blob/main/config.example.toml), and merged [#259](https://github.com/linyqh/NarratoAI/pull/259). |
|
||||
| [wyoming-faster-whisper](https://github.com/OHF-Voice/wyoming-faster-whisper) | A Wyoming protocol speech-to-text server with an optional FunASR backend, making SenseVoice/FunASR available to local voice-assistant deployments that speak Wyoming. | [FunASR handler](https://github.com/OHF-Voice/wyoming-faster-whisper/blob/master/wyoming_faster_whisper/funasr_handler.py), [model registry](https://github.com/OHF-Voice/wyoming-faster-whisper/blob/master/wyoming_faster_whisper/models.py), and merged [#95](https://github.com/OHF-Voice/wyoming-faster-whisper/pull/95). |
|
||||
| [Dify FunASR plugin](https://marketplace.dify.ai/plugin/langgenius/funasr) | The official Dify speech-to-text model provider for self-hosted FunASR endpoints. Marketplace version 0.1.1 includes SenseVoice, Fun-ASR-Nano, Paraformer, and Paraformer English presets with a 25 MB upload limit. | [Official plugin source](https://github.com/langgenius/dify-official-plugins/tree/main/models/funasr), [provider implementation](https://github.com/langgenius/dify-official-plugins/blob/main/models/funasr/provider/funasr.py), initial integration [#3281](https://github.com/langgenius/dify-official-plugins/pull/3281), and 0.1.1 release update [#3498](https://github.com/langgenius/dify-official-plugins/pull/3498). |
|
||||
| [Langflow](https://github.com/langflow-ai/langflow) | A visual workflow and agent platform with a dedicated FunASR speech-to-text component for self-hosted OpenAI-compatible endpoints. It defaults to the local `/v1` route and `sensevoice`, supports optional gateway authentication and language selection, and documents the SSRF allow-list needed for private service hosts. | [FunASR component](https://github.com/langflow-ai/langflow/blob/main/src/bundles/lfx-bundles/src/lfx_bundles/funasr/funasr_transcription.py), [component tests](https://github.com/langflow-ai/langflow/blob/main/src/bundles/lfx-bundles/tests/test_funasr_transcription.py), and merged [#14225](https://github.com/langflow-ai/langflow/pull/14225). |
|
||||
| [Langflow](https://github.com/langflow-ai/langflow) | FunASR transcription is merged into `release-1.13.0`, but is **not included** in stable Langflow `1.12.1` or `lfx-bundles 1.1.23` (checked 2026-09-10). The component defaults to `/v1` and `sensevoice`, with optional gateway authentication, language selection and a private-host SSRF allow-list. Until its release, use the FunASR API directly; a merged PR is not an installed component. | [Reviewed component](https://github.com/langflow-ai/langflow/blob/8a56d1b1c93c30661984f3626e8969e41cfcf10a/src/bundles/lfx-bundles/src/lfx_bundles/funasr/funasr_transcription.py), [component tests](https://github.com/langflow-ai/langflow/blob/8a56d1b1c93c30661984f3626e8969e41cfcf10a/src/bundles/lfx-bundles/tests/test_funasr_transcription.py), merged [#14225](https://github.com/langflow-ai/langflow/pull/14225), and [FunASR API quickstart](https://github.com/modelscope/FunASR/tree/main/examples/openai_api). |
|
||||
| [RAGFlow](https://github.com/infiniflow/ragflow) | A Retrieval-Augmented Generation and agent platform with a local FunASR / SenseVoice speech-to-text provider for self-hosted document and media ingestion workflows, plus hosted Fun-ASR-Flash speech-to-text through the Tongyi-Qianwen provider. | [Provider registration](https://github.com/infiniflow/ragflow/blob/main/rag/llm/sequence2txt_model.py), [supported models docs](https://github.com/infiniflow/ragflow/blob/main/docs/guides/models/supported_models.mdx), merged [#16473](https://github.com/infiniflow/ragflow/pull/16473), and merged [#16844](https://github.com/infiniflow/ragflow/pull/16844). |
|
||||
| [LiveTalking](https://github.com/lipku/LiveTalking) | A real-time interactive digital-human server with a local FunASR/SenseVoice ASR server path; the merged fix serializes shared model access so concurrent requests do not race during lazy model loading or `generate()`. | [ASR server](https://github.com/lipku/LiveTalking/blob/main/server/asr_server.py), [project README](https://github.com/lipku/LiveTalking#readme), and merged [#611](https://github.com/lipku/LiveTalking/pull/611). |
|
||||
| [Sokuji](https://github.com/kizuna-ai-lab/sokuji) | A live speech translation app whose local inference sidecar supports GPU-native SenseVoice through FunASR plus built-in offline Fun-ASR-Nano and Fun-ASR-MLT-Nano catalog cards for CPU/GPU ASR. | [Sidecar model catalog](https://github.com/kizuna-ai-lab/sokuji/blob/main/sidecar/sokuji_sidecar/catalog.py), [native model catalog](https://github.com/kizuna-ai-lab/sokuji/blob/main/src/lib/local-inference/native/nativeCatalog.ts), merged [#268](https://github.com/kizuna-ai-lab/sokuji/pull/268), merged [#270](https://github.com/kizuna-ai-lab/sokuji/pull/270), and merged [#329](https://github.com/kizuna-ai-lab/sokuji/pull/329). |
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
| [NarratoAI](https://github.com/linyqh/NarratoAI) | AI 视频解说与剪辑应用,可通过 OpenAI 兼容转写 endpoint,把字幕生成连接到自托管 FunASR 服务。 | [FunASR 字幕服务](https://github.com/linyqh/NarratoAI/blob/main/app/services/fun_asr_subtitle.py)、[配置示例](https://github.com/linyqh/NarratoAI/blob/main/config.example.toml) 和已合并 [#259](https://github.com/linyqh/NarratoAI/pull/259)。 |
|
||||
| [wyoming-faster-whisper](https://github.com/OHF-Voice/wyoming-faster-whisper) | Wyoming 协议 speech-to-text server,提供可选 FunASR backend,让本地语音助手和 Home Assistant 相关部署可以通过 Wyoming 使用 SenseVoice/FunASR。 | [FunASR handler](https://github.com/OHF-Voice/wyoming-faster-whisper/blob/master/wyoming_faster_whisper/funasr_handler.py)、[模型注册](https://github.com/OHF-Voice/wyoming-faster-whisper/blob/master/wyoming_faster_whisper/models.py) 和已合并 [#95](https://github.com/OHF-Voice/wyoming-faster-whisper/pull/95)。 |
|
||||
| [Dify FunASR 插件](https://marketplace.dify.ai/plugin/langgenius/funasr) | 面向自托管 FunASR endpoint 的 Dify 官方 speech-to-text 模型 provider。Marketplace 0.1.1 内置 SenseVoice、Fun-ASR-Nano、Paraformer 和 Paraformer English 配置,上传上限为 25 MB。 | [官方插件源码](https://github.com/langgenius/dify-official-plugins/tree/main/models/funasr)、[provider 实现](https://github.com/langgenius/dify-official-plugins/blob/main/models/funasr/provider/funasr.py)、初始集成 [#3281](https://github.com/langgenius/dify-official-plugins/pull/3281) 和 0.1.1 发布更新 [#3498](https://github.com/langgenius/dify-official-plugins/pull/3498)。 |
|
||||
| [Langflow](https://github.com/langflow-ai/langflow) | 可视化工作流与 Agent 平台,提供面向自托管 OpenAI 兼容 endpoint 的专用 FunASR speech-to-text 组件。默认连接本地 `/v1` 路径与 `sensevoice`,支持可选网关鉴权和语言选择,并说明私有服务主机所需的 SSRF allow-list 配置。 | [FunASR 组件](https://github.com/langflow-ai/langflow/blob/main/src/bundles/lfx-bundles/src/lfx_bundles/funasr/funasr_transcription.py)、[组件测试](https://github.com/langflow-ai/langflow/blob/main/src/bundles/lfx-bundles/tests/test_funasr_transcription.py) 和已合并 [#14225](https://github.com/langflow-ai/langflow/pull/14225)。 |
|
||||
| [Langflow](https://github.com/langflow-ai/langflow) | FunASR 转写组件已合入 `release-1.13.0`,但正式版 Langflow `1.12.1` 和 `lfx-bundles 1.1.23` **尚未包含**该组件(核验于 2026-09-10)。组件默认连接 `/v1` 与 `sensevoice`,支持可选网关鉴权、语言选择和私有主机 SSRF allow-list。发行前可直接使用 FunASR API;PR 已合并不等于安装后已有该组件。 | [已审阅组件](https://github.com/langflow-ai/langflow/blob/8a56d1b1c93c30661984f3626e8969e41cfcf10a/src/bundles/lfx-bundles/src/lfx_bundles/funasr/funasr_transcription.py)、[组件测试](https://github.com/langflow-ai/langflow/blob/8a56d1b1c93c30661984f3626e8969e41cfcf10a/src/bundles/lfx-bundles/tests/test_funasr_transcription.py)、已合并 [#14225](https://github.com/langflow-ai/langflow/pull/14225) 和 [FunASR API 入门](https://github.com/modelscope/FunASR/tree/main/examples/openai_api)。 |
|
||||
| [RAGFlow](https://github.com/infiniflow/ragflow) | RAG 与 Agent 平台,提供本地 FunASR / SenseVoice speech-to-text provider,适合自托管文档和媒体摄取工作流;同时可通过 Tongyi-Qianwen provider 使用托管 Fun-ASR-Flash speech-to-text。 | [Provider 注册](https://github.com/infiniflow/ragflow/blob/main/rag/llm/sequence2txt_model.py)、[支持模型文档](https://github.com/infiniflow/ragflow/blob/main/docs/guides/models/supported_models.mdx)、已合并 [#16473](https://github.com/infiniflow/ragflow/pull/16473) 和已合并 [#16844](https://github.com/infiniflow/ragflow/pull/16844)。 |
|
||||
| [LiveTalking](https://github.com/lipku/LiveTalking) | 实时交互数字人服务,包含本地 FunASR/SenseVoice ASR server 路径;已合并修复会串行化共享模型访问,避免并发请求在懒加载模型或 `generate()` 时竞争。 | [ASR server](https://github.com/lipku/LiveTalking/blob/main/server/asr_server.py)、[项目 README](https://github.com/lipku/LiveTalking#readme) 和已合并 [#611](https://github.com/lipku/LiveTalking/pull/611)。 |
|
||||
| [Sokuji](https://github.com/kizuna-ai-lab/sokuji) | 实时语音翻译应用,本地推理 sidecar 支持通过 FunASR 使用 GPU-native SenseVoice,并在内置模型目录中提供离线 CPU/GPU Fun-ASR-Nano 与 Fun-ASR-MLT-Nano ASR。 | [Sidecar 模型目录](https://github.com/kizuna-ai-lab/sokuji/blob/main/sidecar/sokuji_sidecar/catalog.py)、[native model catalog](https://github.com/kizuna-ai-lab/sokuji/blob/main/src/lib/local-inference/native/nativeCatalog.ts)、已合并 [#268](https://github.com/kizuna-ai-lab/sokuji/pull/268)、已合并 [#270](https://github.com/kizuna-ai-lab/sokuji/pull/270) 和已合并 [#329](https://github.com/kizuna-ai-lab/sokuji/pull/329)。 |
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
"css/index.1682178c.css": "b5f6034ce886c25773928c114e4290d1c491a3d081677b488810198efd76b4e1",
|
||||
"decoder.js": "f2023a28036b1ff58e5bdabbb72ea427f8faaf60e89acd78ff183c313bdb0a2c",
|
||||
"donors.html": "eec6b789b29c27d372925ae0ad3e13d4c6e62978b3c38c4da9e3aec129f10934",
|
||||
"ecosystem.html": "9b73450837efdc36805d0eb7a05ccfd855f3af3f1fdf4f0a5312341a7fad13ec",
|
||||
"ecosystem.html": "de151aebb8d807b21e719d59a54766f4998945310c97bbabf2ac31dae5c0a283",
|
||||
"en/blog/cantonese-speech-recognition.html": "b9bd146198206f781c37f341c370a690dc83cd7163334e34b4e7f65e69af8ff2",
|
||||
"en/blog/chinese-speech-recognition.html": "16b68bd2a1122236c580c62275002ae2c0875ca14e32686e88d3b5ccfa9f56ef",
|
||||
"en/blog/fun-asr-nano-guide.html": "1746c708bd0606188de4266d8255984dd9e14634af33c54ad65a5f05b767be1b",
|
||||
@@ -88,7 +88,7 @@
|
||||
"en/blog/voice-activity-detection-python.html": "d12f5d0f4ae07c3434f6188d12f5603b8abb9578413b79133668638d1c5e18a7",
|
||||
"en/blog/which-funasr-model.html": "1207180aa929a3aa51db136c1098f4edc8f07405e2b56fe033998bf996f8ec7f",
|
||||
"en/donors.html": "eacb7f9434b1b29e13e9b0175bb9680556ee72ab4dbd155e68f9c912eb0212b1",
|
||||
"en/ecosystem.html": "f02ee516440dfc3757165df801fbf93b403b2ef1fdbee1a2dee26cd2a3ef9fa3",
|
||||
"en/ecosystem.html": "81cec9464db159189ef29df884b124c795fce01ef08bfaae03d982696de13701",
|
||||
"en/index.html": "d86effc3bf4d218eabd465cbbe026f62c98dd50110ddd58251d9d271a64882a2",
|
||||
"en/llama-cpp.html": "dbfbd125ebbf07f7d923c91b122818f8b09484ce54c1e80eba66a89d22dfb5b4",
|
||||
"en/models.html": "9806d01ba1807c2a6a88f7232102e185426fb8458bf51e1d7a8ce872352e1fd1",
|
||||
|
||||
@@ -246,7 +246,7 @@ footer a{color:#60a5fa}
|
||||
<div class="card">
|
||||
<div class="card-title"><a href="https://github.com/langflow-ai/langflow">Langflow</a></div>
|
||||
<div class="card-stars">75K+ stars</div>
|
||||
<div class="card-desc">可视化工作流与 Agent 平台,已通过 <a href="https://github.com/langflow-ai/langflow/pull/14225">#14225</a> 合并专用 FunASR speech-to-text 组件。默认连接本地 <code>/v1</code> 与 <code>sensevoice</code>,支持可选网关鉴权和语言选择;自托管服务启用 SSRF 防护时,请把服务主机加入 allow-list。</div>
|
||||
<div class="card-desc">FunASR 转写组件已通过 <a href="https://github.com/langflow-ai/langflow/pull/14225">#14225</a> 合入 <code>release-1.13.0</code>;正式版 <code>Langflow 1.12.1</code> 和 <code>lfx-bundles 1.1.23</code> <strong>尚未包含</strong>该组件(2026-09-10 核验)。<a href="https://github.com/langflow-ai/langflow/blob/8a56d1b1c93c30661984f3626e8969e41cfcf10a/src/bundles/lfx-bundles/src/lfx_bundles/funasr/funasr_transcription.py">已审阅源码</a>默认使用 <code>/v1</code> 与 <code>sensevoice</code>,支持网关鉴权、语言选择和私有主机 SSRF allow-list。发行前可直接使用 <a href="https://github.com/modelscope/FunASR/tree/main/examples/openai_api">FunASR API</a>。</div>
|
||||
<div><span class="card-tag">Workflow</span><span class="card-tag">Local FunASR</span><span class="card-tag">OpenAI 兼容</span></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
|
||||
@@ -247,7 +247,7 @@ footer a{color:#60a5fa}
|
||||
<div class="card">
|
||||
<div class="card-title"><a href="https://github.com/langflow-ai/langflow">Langflow</a></div>
|
||||
<div class="card-stars">75K+ stars</div>
|
||||
<div class="card-desc">A visual workflow and agent platform with a dedicated FunASR speech-to-text component merged in <a href="https://github.com/langflow-ai/langflow/pull/14225">#14225</a>. It defaults to local <code>/v1</code> and <code>sensevoice</code>, with optional gateway authentication and language selection; add a self-hosted service host to Langflow's SSRF allow-list when that protection is enabled.</div>
|
||||
<div class="card-desc">FunASR transcription was merged into <code>release-1.13.0</code> via <a href="https://github.com/langflow-ai/langflow/pull/14225">#14225</a>, but is <strong>not included</strong> in stable <code>Langflow 1.12.1</code> or <code>lfx-bundles 1.1.23</code> (checked 2026-09-10). The <a href="https://github.com/langflow-ai/langflow/blob/8a56d1b1c93c30661984f3626e8969e41cfcf10a/src/bundles/lfx-bundles/src/lfx_bundles/funasr/funasr_transcription.py">reviewed source</a> defaults to <code>/v1</code> and <code>sensevoice</code>, with gateway auth, language selection and a private-host SSRF allow-list. Until its release, use the <a href="https://github.com/modelscope/FunASR/tree/main/examples/openai_api">FunASR API</a> directly.</div>
|
||||
<div><span class="card-tag">Workflow</span><span class="card-tag">Local FunASR</span><span class="card-tag">OpenAI-compat</span></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
|
||||
@@ -196,6 +196,41 @@ def test_openmaic_ecosystem_entry_is_merged_attributed_and_bounded():
|
||||
assert 'https://github.com/THU-MAIC/OpenMAIC/pull/1044' in text
|
||||
|
||||
|
||||
def test_langflow_entries_distinguish_release_branch_from_published_packages():
|
||||
revision = '8a56d1b1c93c30661984f3626e8969e41cfcf10a'
|
||||
source = (
|
||||
f'https://github.com/langflow-ai/langflow/blob/{revision}/'
|
||||
'src/bundles/lfx-bundles/src/lfx_bundles/funasr/funasr_transcription.py'
|
||||
)
|
||||
api_guide = 'https://github.com/modelscope/FunASR/tree/main/examples/openai_api'
|
||||
for language in ('en', 'zh'):
|
||||
page = LEGACY / ('en/ecosystem.html' if language == 'en' else 'ecosystem.html')
|
||||
soup = BeautifulSoup(page.read_text(encoding='utf-8'), 'html.parser')
|
||||
cards = [
|
||||
card for card in soup.select('.card')
|
||||
if card.select_one('.card-title').get_text(' ', strip=True) == 'Langflow'
|
||||
]
|
||||
assert len(cards) == 1
|
||||
card = cards[0]
|
||||
text = card.get_text(' ', strip=True)
|
||||
links = {link.get('href') for link in card.select('a[href]')}
|
||||
assert {source, api_guide} <= links
|
||||
assert 'release-1.13.0' in text
|
||||
assert '1.12.1' in text and '1.1.23' in text
|
||||
assert '2026-09-10' in text
|
||||
assert ('尚未包含' in text) if language == 'zh' else ('not included' in text)
|
||||
assert 'SSRF' in text
|
||||
|
||||
name = 'community_projects.md' if language == 'en' else 'community_projects_zh.md'
|
||||
document = (SITE_ROOT.parents[1] / 'docs' / name).read_text(encoding='utf-8')
|
||||
row = next(line for line in document.splitlines() if '[Langflow](' in line)
|
||||
assert source in row and api_guide in row
|
||||
assert 'release-1.13.0' in row
|
||||
assert '1.12.1' in row and '1.1.23' in row
|
||||
assert ('尚未包含' in row) if language == 'zh' else ('not included' in row)
|
||||
assert 'https://github.com/langflow-ai/langflow/blob/main/' not in row
|
||||
|
||||
|
||||
def test_recent_merged_ecosystem_integrations_are_bilingual_and_attributed():
|
||||
pages = {
|
||||
'zh': LEGACY / 'ecosystem.html',
|
||||
|
||||
Reference in New Issue
Block a user