[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-elastic--elasticsearch-labs":3,"similar-elastic--elasticsearch-labs":123},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":9,"readme_en":10,"readme_zh":11,"quickstart_zh":12,"use_case_zh":13,"hero_image_url":14,"owner_login":15,"owner_name":15,"owner_avatar_url":16,"owner_bio":17,"owner_company":18,"owner_location":18,"owner_email":19,"owner_twitter":18,"owner_website":20,"owner_url":21,"languages":22,"stars":60,"forks":61,"last_commit_at":62,"license":63,"difficulty_score":64,"env_os":65,"env_gpu":65,"env_ram":65,"env_deps":66,"category_tags":77,"github_topics":84,"view_count":97,"oss_zip_url":18,"oss_zip_packed_at":18,"status":98,"created_at":99,"updated_at":100,"faqs":101,"releases":122},6789,"elastic\u002Felasticsearch-labs","elasticsearch-labs","Notebooks & Example Apps for Search & AI Applications with Elasticsearch","elasticsearch-labs 是一个专为搜索与人工智能应用打造的开源资源库，提供了丰富的可执行 Python 笔记本（Notebooks）和示例应用程序。它旨在帮助开发者快速上手并验证如何利用 Elasticsearch 构建现代化的智能搜索体验。\n\n面对大模型时代下向量数据库选型难、检索增强生成（RAG）落地复杂等挑战，elasticsearch-labs 通过直观的代码示例，展示了如何将 Elasticsearch 作为向量数据库存储嵌入数据，并轻松实现混合搜索、语义搜索、自动摘要及问答系统。用户可以直接复用集成 OpenAI、Hugging Face 和 LangChain 的代码模板，大幅降低开发门槛。\n\n该资源库特别适合后端工程师、AI 研究员以及希望探索搜索技术的开发者使用。其独特亮点在于无需额外训练或调优，即可直接体验 Elastic Learned Sparse Encoder (ELSER) 和倒数排名融合（RRF）等业界领先的开箱即用技术，从而获得卓越的搜索结果。无论是想快速搭建聊天机器人，还是深入测试文档分块与多语言搜索策略，elasticsearch-l","elasticsearch-labs 是一个专为搜索与人工智能应用打造的开源资源库，提供了丰富的可执行 Python 笔记本（Notebooks）和示例应用程序。它旨在帮助开发者快速上手并验证如何利用 Elasticsearch 构建现代化的智能搜索体验。\n\n面对大模型时代下向量数据库选型难、检索增强生成（RAG）落地复杂等挑战，elasticsearch-labs 通过直观的代码示例，展示了如何将 Elasticsearch 作为向量数据库存储嵌入数据，并轻松实现混合搜索、语义搜索、自动摘要及问答系统。用户可以直接复用集成 OpenAI、Hugging Face 和 LangChain 的代码模板，大幅降低开发门槛。\n\n该资源库特别适合后端工程师、AI 研究员以及希望探索搜索技术的开发者使用。其独特亮点在于无需额外训练或调优，即可直接体验 Elastic Learned Sparse Encoder (ELSER) 和倒数排名融合（RRF）等业界领先的开箱即用技术，从而获得卓越的搜索结果。无论是想快速搭建聊天机器人，还是深入测试文档分块与多语言搜索策略，elasticsearch-labs 都能提供即拿即用的实践指南，是构建 LLM 驱动应用的理想起点。","# Elasticsearch Examples & Apps\n\n**Visit [Search Labs](https:\u002F\u002Fwww.elastic.co\u002Fsearch-labs) for the latest articles and tutorials on using Elasticsearch for search and AI\u002FML-powered search experiences**\n\nThis repo contains executable Python notebooks, sample apps, and resources for testing out the Elastic platform:\n\n- Learn how to use Elasticsearch as a vector database to store embeddings, power hybrid and semantic search experiences.\n- Build use cases such as retrieval augmented generation (RAG), summarization, and question answering (QA).\n- Test Elastic's leading-edge, out-of-the-box capabilities like the [Elastic Learned Sparse Encoder](https:\u002F\u002Fwww.elastic.co\u002Fguide\u002Fen\u002Fmachine-learning\u002Fcurrent\u002Fml-nlp-elser.html) and [reciprocal rank fusion (RRF)](\u003Chttps:\u002F\u002Fwww.elastic.co\u002Fblog\u002Fwhats-new-elastic-enterprise-search-8-9-0#hybrid-search-with-reciprocal-rank-fusion-(rrf)-combines-multiple-search-techniques-for-better-results>), which produce best-in-class results without training or tuning.\n- Integrate with projects like OpenAI, Hugging Face, and LangChain, and use Elasticsearch as the backbone of your LLM-powered applications.\n\nElastic enables all modern search experiences powered by AI\u002FML.\n\n- Bookmark or subscribe to [Elasticsearch Labs on Github](https:\u002F\u002Fgithub.com\u002Felastic\u002Felasticsearch-labs)\n- Read our latest articles at [elastic.co\u002Fsearch-labs](https:\u002F\u002Fwww.elastic.co\u002Fsearch-labs)\n\n# Apps\n\n- [Chatbot RAG App](.\u002Fexample-apps\u002Fchatbot-rag-app\u002F)\n- [Internal Knowledge Search](.\u002Fexample-apps\u002Finternal-knowledge-search)\n- [Relevance Workbench](.\u002Fexample-apps\u002Frelevance-workbench)\n\n# Python notebooks 📒\n\nThe [`notebooks`](notebooks\u002FREADME.md) folder contains a range of executable Python notebooks, so you can test these features out for yourself. Colab provides an easy-to-use Python virtual environment in the browser.\n\n### Generative AI\n\n- [`question-answering.ipynb`](.\u002Fnotebooks\u002Fgenerative-ai\u002Fquestion-answering.ipynb)\n- [`chatbot.ipynb`](.\u002Fnotebooks\u002Fgenerative-ai\u002Fchatbot.ipynb)\n\n### Playground RAG Notebooks\n\nTry out Playground in Kibana with the following notebooks:\n\n- [`OpenAI Example`](.\u002Fnotebooks\u002Fplayground-examples\u002Fopenai-elasticsearch-client.ipynb)\n- [`Anthropic Claude 3 Example`](.\u002Fnotebooks\u002Fplayground-examples\u002Fbedrock-anthropic-elasticsearch-client.ipynb)\n\n### LangChain\n\n- [`question-answering.ipynb`](.\u002Fnotebooks\u002Fgenerative-ai\u002Fquestion-answering.ipynb)\n- [`langchain-self-query-retriever.ipynb`](.\u002Fnotebooks\u002Flangchain\u002Fself-query-retriever-examples\u002Flangchain-self-query-retriever.ipynb)\n- [`Question Answering with Self Query Retriever`](.\u002Fnotebooks\u002Flangchain\u002Fself-query-retriever-examples\u002Fchatbot-example.ipynb)\n- [`BM25 and Self-querying retriever with elasticsearch and LangChain`](.\u002Fnotebooks\u002Flangchain\u002Fself-query-retriever-examples\u002Fchatbot-with-bm25-only-example.ipynb)\n- [`langchain-vector-store.ipynb`](.\u002Fnotebooks\u002Flangchain\u002Flangchain-vector-store.ipynb)\n- [`langchain-vector-store-using-elser.ipynb`](.\u002Fnotebooks\u002Flangchain\u002Flangchain-vector-store-using-elser.ipynb)\n- [`langchain-using-own-model.ipynb`](.\u002Fnotebooks\u002Flangchain\u002Flangchain-using-own-model.ipynb)\n\n### Document Chunking\n\n- [`Document Chunking with Ingest Pipelines`](.\u002Fnotebooks\u002Fdocument-chunking\u002Fwith-index-pipelines.ipynb)\n- [`Document Chunking with LangChain Splitters`](.\u002Fnotebooks\u002Fdocument-chunking\u002Fwith-langchain-splitters.ipynb)\n- [`Calculating tokens for Semantic Search (ELSER and E5)`](.\u002Fnotebooks\u002Fdocument-chunking\u002Ftokenization.ipynb)\n- [`Fetch surrounding chunks`](.\u002Fsupporting-blog-content\u002Ffetch-surrounding-chunks\u002Ffetch-surrounding-chunks.ipynb)\n\n### Search\n\n- [`00-quick-start.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F00-quick-start.ipynb)\n- [`01-keyword-querying-filtering.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F01-keyword-querying-filtering.ipynb)\n- [`02-hybrid-search.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F02-hybrid-search.ipynb)\n- [`03-ELSER.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F03-ELSER.ipynb)\n- [`04-multilingual.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F04-multilingual.ipynb)\n- [`05-query-rules.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F05-query-rules.ipynb)\n- [`06-synonyms-api.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F06-synonyms-api.ipynb)\n- [`07-inference.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F07-inference.ipynb)\n- [`08-learning-to-rank.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F08-learning-to-rank.ipynb)\n- [`09-semantic-text.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F09-semantic-text.ipynb)\n\n#### Semantic reranking\n\n- [`10-semantic-reranking-retriever-cohere.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F10-semantic-reranking-retriever-cohere.ipynb)\n- [`11-semantic-reranking-hugging-face.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F11-semantic-reranking-hugging-face.ipynb)\n\n### Integrations\n\n- [`loading-model-from-hugging-face.ipynb`](.\u002Fnotebooks\u002Fintegrations\u002Fhugging-face\u002Floading-model-from-hugging-face.ipynb)\n- [`openai-semantic-search-RAG.ipynb`](.\u002Fnotebooks\u002Fintegrations\u002Fopenai\u002Fopenai-KNN-RAG.ipynb)\n- [`amazon-bedrock-langchain-qa-example.ipynb`](notebooks\u002Fintegrations\u002Famazon-bedrock\u002Flangchain-qa-example.ipynb)\n- [`Semantic Search using the Inference API with the Cohere Service`](\u002Fnotebooks\u002Fintegrations\u002Fcohere\u002Finference-cohere.ipynb)\n\n### Model Upgrades\n\n- [`upgrading-index-to-use-elser.ipynb`](notebooks\u002Fmodel-upgrades\u002Fupgrading-index-to-use-elser.ipynb)\n\n# Contributing 🎁\n\nSee [contributing guidelines](CONTRIBUTING.md).\n\n# Support 🛟\n\nThe Search team at Elastic maintains this repository and is happy to help.\n\n### Official Support Services\n\nIf you have an Elastic subscription, you are entitled to Support services for your Elasticsearch deployment. See our welcome page for [working with our support team](https:\u002F\u002Fwww.elastic.co\u002Fsupport\u002Fwelcome).\nThese services do not apply to the sample application code contained in this repository.\n\n### Discuss Forum\n\nTry posting your question to the [Elastic discuss forums](https:\u002F\u002Fdiscuss.elastic.co\u002F) and tag it with [#esre-elasticsearch-relevance-engine](https:\u002F\u002Fdiscuss.elastic.co\u002Ftag\u002Fesre-elasticsearch-relevance-engine)\n\n### Elastic Slack\n\nYou can also find us in the [#search-esre-relevance-engine](https:\u002F\u002Felasticstack.slack.com\u002Farchives\u002FC05CED61S9J) channel of the [Elastic Community Slack](http:\u002F\u002Felasticstack.slack.com)\n\n# License ⚖️\n\nThis software is licensed under the [Apache License, version 2 (\"ALv2\")](https:\u002F\u002Fgithub.com\u002Felastic\u002Felasticsearch-labs\u002Fblob\u002Fmain\u002FLICENSE).\n","# Elasticsearch 示例与应用\n\n**访问 [Search Labs](https:\u002F\u002Fwww.elastic.co\u002Fsearch-labs)，获取有关如何使用 Elasticsearch 构建搜索及 AI\u002FML 驱动的搜索体验的最新文章和教程**\n\n此仓库包含可执行的 Python 笔记本、示例应用以及用于测试 Elastic 平台的资源：\n\n- 学习如何将 Elasticsearch 用作向量数据库来存储嵌入，并支持混合搜索和语义搜索体验。\n- 构建检索增强生成（RAG）、摘要生成和问答（QA）等用例。\n- 测试 Elastic 的前沿开箱即用功能，例如 [Elastic Learned Sparse Encoder](https:\u002F\u002Fwww.elastic.co\u002Fguide\u002Fen\u002Fmachine-learning\u002Fcurrent\u002Fml-nlp-elser.html) 和 [倒数排名融合（RRF）](\u003Chttps:\u002F\u002Fwww.elastic.co\u002Fblog\u002Fwhats-new-elastic-enterprise-search-8-9-0#hybrid-search-with-reciprocal-rank-fusion-(rrf)-combines-multiple-search-techniques-for-better-results>)，这些功能无需训练或调优即可产生一流的搜索效果。\n- 与 OpenAI、Hugging Face 和 LangChain 等项目集成，并将 Elasticsearch 作为您基于 LLM 的应用程序的核心。\n\nElastic 支持所有由 AI\u002FML 驱动的现代搜索体验。\n\n- 请收藏或订阅 [Elasticsearch Labs on Github](https:\u002F\u002Fgithub.com\u002Felastic\u002Felasticsearch-labs)\n- 阅读我们在 [elastic.co\u002Fsearch-labs](https:\u002F\u002Fwww.elastic.co\u002Fsearch-labs) 上发布的最新文章\n\n# 应用\n\n- [聊天机器人 RAG 应用](.\u002Fexample-apps\u002Fchatbot-rag-app\u002F)\n- [内部知识搜索](.\u002Fexample-apps\u002Finternal-knowledge-search)\n- [相关性工作台](.\u002Fexample-apps\u002Frelevance-workbench)\n\n# Python 笔记本 📒\n\n`notebooks` 文件夹包含一系列可执行的 Python 笔记本，方便您亲自测试这些功能。Colab 提供了一个易于使用的浏览器端 Python 虚拟环境。\n\n### 生成式 AI\n\n- [`question-answering.ipynb`](.\u002Fnotebooks\u002Fgenerative-ai\u002Fquestion-answering.ipynb)\n- [`chatbot.ipynb`](.\u002Fnotebooks\u002Fgenerative-ai\u002Fchatbot.ipynb)\n\n### Playground RAG 笔记本\n\n通过以下笔记本在 Kibana 中试用 Playground：\n\n- [`OpenAI 示例`](.\u002Fnotebooks\u002Fplayground-examples\u002Fopenai-elasticsearch-client.ipynb)\n- [`Anthropic Claude 3 示例`](.\u002Fnotebooks\u002Fplayground-examples\u002Fbedrock-anthropic-elasticsearch-client.ipynb)\n\n### LangChain\n\n- [`question-answering.ipynb`](.\u002Fnotebooks\u002Fgenerative-ai\u002Fquestion-answering.ipynb)\n- [`langchain-self-query-retriever.ipynb`](.\u002Fnotebooks\u002Flangchain\u002Fself-query-retriever-examples\u002Flangchain-self-query-retriever.ipynb)\n- [`使用 Self Query Retriever 的问答`](.\u002Fnotebooks\u002Flangchain\u002Fself-query-retriever-examples\u002Fchatbot-example.ipynb)\n- [`结合 BM25 和 Self-querying retriever 的 Elasticsearch 与 LangChain`](.\u002Fnotebooks\u002Flangchain\u002Fself-query-retriever-examples\u002Fchatbot-with-bm25-only-example.ipynb)\n- [`langchain-vector-store.ipynb`](.\u002Fnotebooks\u002Flangchain\u002Flangchain-vector-store.ipynb)\n- [`langchain-vector-store-using-elser.ipynb`](.\u002Fnotebooks\u002Flangchain\u002Flangchain-vector-store-using-elser.ipynb)\n- [`langchain-using-own-model.ipynb`](.\u002Fnotebooks\u002Flangchain\u002Flangchain-using-own-model.ipynb)\n\n### 文档分块\n\n- [`使用摄取管道进行文档分块`](.\u002Fnotebooks\u002Fdocument-chunking\u002Fwith-index-pipelines.ipynb)\n- [`使用 LangChain 分割器进行文档分块`](.\u002Fnotebooks\u002Fdocument-chunking\u002Fwith-langchain-splitters.ipynb)\n- [`计算语义搜索所需的 token 数量（ELSER 和 E5）`](.\u002Fnotebooks\u002Fdocument-chunking\u002Ftokenization.ipynb)\n- [`获取周边分块`](.\u002Fsupporting-blog-content\u002Ffetch-surrounding-chunks\u002Ffetch-surrounding-chunks.ipynb)\n\n### 搜索\n\n- [`00-quick-start.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F00-quick-start.ipynb)\n- [`01-keyword-querying-filtering.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F01-keyword-querying-filtering.ipynb)\n- [`02-hybrid-search.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F02-hybrid-search.ipynb)\n- [`03-ELSER.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F03-ELSER.ipynb)\n- [`04-multilingual.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F04-multilingual.ipynb)\n- [`05-query-rules.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F05-query-rules.ipynb)\n- [`06-synonyms-api.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F06-synonyms-api.ipynb)\n- [`07-inference.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F07-inference.ipynb)\n- [`08-learning-to-rank.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F08-learning-to-rank.ipynb)\n- [`09-semantic-text.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F09-semantic-text.ipynb)\n\n#### 语义重排序\n\n- [`10-semantic-reranking-retriever-cohere.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F10-semantic-reranking-retriever-cohere.ipynb)\n- [`11-semantic-reranking-hugging-face.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F11-semantic-reranking-hugging-face.ipynb)\n\n### 集成\n\n- [`loading-model-from-hugging-face.ipynb`](.\u002Fnotebooks\u002Fintegrations\u002Fhugging-face\u002Floading-model-from-hugging-face.ipynb)\n- [`openai-semantic-search-RAG.ipynb`](.\u002Fnotebooks\u002Fintegrations\u002Fopenai\u002Fopenai-KNN-RAG.ipynb)\n- [`amazon-bedrock-langchain-qa-example.ipynb`](notebooks\u002Fintegrations\u002Famazon-bedrock\u002Flangchain-qa-example.ipynb)\n- [`使用 Cohere 服务的推理 API 进行语义搜索`](\u002Fnotebooks\u002Fintegrations\u002Fcohere\u002Finference-cohere.ipynb)\n\n### 模型升级\n\n- [`upgrading-index-to-use-elser.ipynb`](notebooks\u002Fmodel-upgrades\u002Fupgrading-index-to-use-elser.ipynb)\n\n# 贡献 🎁\n\n请参阅 [贡献指南](CONTRIBUTING.md)。\n\n# 支持 🛟\n\nElastic 的搜索团队维护着这个仓库，并乐于为您提供帮助。\n\n### 官方支持服务\n\n如果您拥有 Elastic 订阅，您有权享受针对 Elasticsearch 部署的支持服务。请参阅我们的欢迎页面，了解如何[与我们的支持团队合作](https:\u002F\u002Fwww.elastic.co\u002Fsupport\u002Fwelcome)。这些服务不适用于本仓库中包含的示例应用代码。\n\n### 讨论论坛\n\n您可以将问题发布到 [Elastic 讨论论坛](https:\u002F\u002Fdiscuss.elastic.co\u002F)上，并标记 [#esre-elasticsearch-relevance-engine](https:\u002F\u002Fdiscuss.elastic.co\u002Ftag\u002Fesre-elasticsearch-relevance-engine)。\n\n### Elastic Slack\n\n您也可以在 [Elastic Community Slack](http:\u002F\u002Felasticstack.slack.com) 的 [#search-esre-relevance-engine](https:\u002F\u002Felasticstack.slack.com\u002Farchives\u002FC05CED61S9J) 频道中找到我们。\n\n# 许可证 ⚖️\n\n本软件根据 [Apache License, version 2 (\"ALv2\")](https:\u002F\u002Fgithub.com\u002Felastic\u002Felasticsearch-labs\u002Fblob\u002Fmain\u002FLICENSE) 许可证授权。","# Elasticsearch Labs 快速上手指南\n\n本指南帮助中国开发者快速利用 `elasticsearch-labs` 仓库中的资源，构建基于 AI\u002FML 的搜索体验、RAG（检索增强生成）应用及向量数据库用例。\n\n## 环境准备\n\n在开始之前，请确保满足以下系统要求和前置依赖：\n\n*   **操作系统**：Linux, macOS 或 Windows (WSL2 推荐)。\n*   **Python 版本**：Python 3.8 或更高版本。\n*   **Elasticsearch 集群**：\n    *   需要一个运行中的 Elasticsearch 实例（建议版本 8.x+ 以支持完整的 AI\u002FML 功能）。\n    *   可以是本地部署、Docker 容器或 Elastic Cloud 托管实例。\n*   **前置依赖库**：\n    *   `pip` (Python 包管理工具)\n    *   `jupyter` 或 `jupyterlab` (用于运行 `.ipynb` Notebook 文件)\n    *   常用 AI 库：`langchain`, `openai`, `huggingface_hub`, `sentence-transformers` 等（Notebook 中通常会按需安装）。\n\n> **提示**：国内开发者若访问 Hugging Face 或 PyPI 较慢，建议配置国内镜像源：\n> *   Pip 镜像：`export PIP_INDEX_URL=https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n> *   Hugging Face 镜像：`export HF_ENDPOINT=https:\u002F\u002Fhf-mirror.com`\n\n## 安装步骤\n\n1.  **克隆仓库**\n    将项目代码下载到本地：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Felastic\u002Felasticsearch-labs.git\n    cd elasticsearch-labs\n    ```\n\n2.  **创建虚拟环境**\n    建议为项目创建独立的 Python 虚拟环境：\n    ```bash\n    python -m venv venv\n    source venv\u002Fbin\u002Factivate  # Linux\u002FmacOS\n    # 或\n    venv\\Scripts\\activate     # Windows\n    ```\n\n3.  **安装基础依赖**\n    虽然不同的 Notebook 可能需要特定的库，但首先安装运行 Jupyter 和基础 Elastic 客户端所需的包：\n    ```bash\n    pip install jupyterlab elasticsearch pandas requests\n    ```\n    *注：具体 Notebook 运行前，请查看该文件顶部的单元格，通常包含该示例专用的 `pip install` 命令（如 `langchain`, `openai` 等），按需执行即可。*\n\n4.  **启动 Jupyter Lab**\n    进入 `notebooks` 目录并启动服务：\n    ```bash\n    cd notebooks\n    jupyter lab\n    ```\n    浏览器会自动打开界面，你可以导航至对应的分类文件夹（如 `generative-ai`, `search`, `langchain`）选择示例运行。\n\n## 基本使用\n\n以下以最基础的 **混合搜索 (Hybrid Search)** 为例，演示如何使用该仓库中的 Notebook 进行快速测试。\n\n### 1. 选择示例\n在 Jupyter Lab 界面中，打开 `search` 文件夹下的 [`02-hybrid-search.ipynb`](.\u002Fnotebooks\u002Fsearch\u002F02-hybrid-search.ipynb)。\n\n### 2. 配置连接信息\n在 Notebook 的第一个代码单元格中，填入你的 Elasticsearch 连接信息。如果你使用的是 Elastic Cloud，请填写 Cloud ID 和 API Key；如果是本地部署，请填写 URL 和密码。\n\n```python\nfrom elasticsearch import Elasticsearch\n\n# 替换为你的实际连接信息\nELASTIC_CLOUD_ID = \"\u003Cyour-cloud-id>\" \nELASTIC_API_KEY = \"\u003Cyour-api-key>\"\n\n# 或者本地连接\n# ELASTIC_HOST = \"http:\u002F\u002Flocalhost:9200\"\n# ELASTIC_USER = \"elastic\"\n# ELASTIC_PASSWORD = \"\u003Cyour-password>\"\n\nclient = Elasticsearch(\n    cloud_id=ELASTIC_CLOUD_ID,\n    api_key=ELASTIC_API_KEY\n    # 本地模式使用 hosts, basic_auth 参数\n)\n\n# 验证连接\nprint(client.info())\n```\n\n### 3. 运行示例流程\n按顺序执行 Notebook 中的单元格，典型流程如下：\n\n1.  **数据索引**：示例通常会创建一个索引并写入少量测试文档（包含文本字段）。\n2.  **模型调用**：调用内置的 `ELSER` (Elastic Learned Sparse Encoder) 模型或外部嵌入模型生成向量。\n    ```python\n    # 示例：使用 ELSER 进行推理 (需确保集群已部署 ELSER 模型)\n    response = client.infer_trained_model(\n        model_id=\".elser_model_2\",\n        docs=[{\"text_field\": \"What is the best way to learn Python?\"}]\n    )\n    ```\n3.  **执行混合查询**：结合关键词搜索 (BM25) 和语义搜索 (Vector\u002FKNN)，并使用 RRF (Reciprocal Rank Fusion) 融合结果。\n    ```python\n    response = client.search(\n        index=\"your-index-name\",\n        query={\n            \"retriever\": {\n                \"rrf\": {\n                    \"retrievers\": [\n                        { \"standard\": { \"query\": { \"match\": {\"text_field\": \"learn Python\"} } } },\n                        { \"knn\": { \"field\": \"text_embedding\", \"query_vector\": [...], \"k\": 10 } }\n                    ]\n                }\n            }\n        }\n    )\n    print(response[\"hits\"][\"hits\"])\n    ```\n\n### 4. 探索更多场景\n完成基础测试后，你可以尝试仓库中的其他核心场景：\n*   **RAG 应用**：运行 `generative-ai\u002Fchatbot.ipynb` 构建基于 Elasticsearch 的问答机器人。\n*   **LangChain 集成**：在 `langchain\u002F` 目录下尝试使用 LangChain 的 `SelfQueryRetriever` 或向量存储功能。\n*   **文档分块**：参考 `document-chunking\u002F` 下的笔记学习如何优化长文本切片策略。\n\n通过以上步骤，你即可利用 `elasticsearch-labs` 快速验证 Elasticsearch 在 AI 搜索领域的强大能力。","某电商公司的技术团队正致力于升级其内部知识库，希望构建一个能理解自然语言提问并精准返回政策文档片段的智能问答系统。\n\n### 没有 elasticsearch-labs 时\n- 团队需从零摸索如何将非结构化文档切分为适合向量检索的片段，缺乏标准的分块（Chunking）参考代码，导致数据预处理耗时数周。\n- 在尝试结合关键词搜索与语义搜索时，难以手动调优混合排序算法，搜索结果常出现“语义相关但关键词不匹配”或反之的偏差。\n- 集成 LangChain 与 Elasticsearch 时，因缺少现成的 Retriever 示例，开发人员反复调试接口参数，无法快速验证 RAG（检索增强生成）流程的可行性。\n- 面对多语言文档支持需求，团队不得不自行寻找并测试外部嵌入模型，缺乏开箱即用的多语言搜索方案，项目上线风险极高。\n\n### 使用 elasticsearch-labs 后\n- 直接复用 `document-chunking` 目录下的 Notebook，利用 Ingest Pipelines 或 LangChain Splitters 快速实现标准化文档分块，将数据准备时间缩短至几天。\n- 通过 `02-hybrid-search.ipynb` 和 `03-ELSER.ipynb` 示例，一键启用弹性稀疏编码器（ELSER）和倒数排名融合（RRF）技术，无需训练即可获得业界领先的混合搜索精度。\n- 参照 `langchain-self-query-retriever.ipynb` 等成熟案例，迅速打通 LangChain 与 Elasticsearch 的连接，当天即可跑通包含上下文检索的智能问答原型。\n- 利用 `04-multilingual.ipynb` 提供的多语言搜索模板，轻松支持全球员工用母语检索公司政策，无需额外开发复杂的翻译或模型适配逻辑。\n\nelasticsearch-labs 通过提供可执行的代码范例和最佳实践，将原本需要数月的搜索与 AI 应用探索期压缩至数天，让团队能专注于业务逻辑而非底层基建。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Felastic_elasticsearch-labs_83850d97.png","elastic","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Felastic_f440e060.png","",null,"info@elastic.co","https:\u002F\u002Fwww.elastic.co\u002F","https:\u002F\u002Fgithub.com\u002Felastic",[23,27,31,35,39,43,47,50,54,57],{"name":24,"color":25,"percentage":26},"Jupyter Notebook","#DA5B0B",96.5,{"name":28,"color":29,"percentage":30},"Python","#3572A5",1.8,{"name":32,"color":33,"percentage":34},"TypeScript","#3178c6",0.8,{"name":36,"color":37,"percentage":38},"JavaScript","#f1e05a",0.4,{"name":40,"color":41,"percentage":42},"HTML","#e34c26",0.3,{"name":44,"color":45,"percentage":46},"CSS","#663399",0.1,{"name":48,"color":49,"percentage":46},"C#","#178600",{"name":51,"color":52,"percentage":53},"Shell","#89e051",0,{"name":55,"color":56,"percentage":53},"Dockerfile","#384d54",{"name":58,"color":59,"percentage":53},"Go","#00ADD8",1067,268,"2026-04-11T13:42:46","Apache-2.0",4,"未说明",{"notes":67,"python":65,"dependencies":68},"该仓库主要提供可执行的 Python Notebook 和示例应用，用于测试 Elasticsearch 的搜索和 AI\u002FML 功能。官方建议使用 Google Colab 在浏览器中直接运行 Notebook，无需本地配置复杂环境。具体依赖库版本需参考各个 Notebook 文件内的安装指令。集成项目包括 OpenAI、Hugging Face、LangChain 和 Amazon Bedrock。",[69,70,71,72,73,74,75,76],"elasticsearch","langchain","openai","transformers","torch","huggingface_hub","cohere","boto3",[78,79,80,81,82,83],"图像","Agent","语言模型","开发框架","数据工具","其他",[85,86,87,15,69,88,89,71,90,91,70,92,93,94,95,96],"ai","chatgpt","chatlog","genai","genaistack","openai-chatgpt","search","applications","python","vector","vectordatabase","langchain-python",2,"ready","2026-03-27T02:49:30.150509","2026-04-12T13:12:28.998080",[102,107,112,117],{"id":103,"question_zh":104,"answer_zh":105,"source_url":106},30616,"在性能较低的电脑或非 x86 架构（如新款 MacBook）上运行 chatbot-rag-app 时，安装 elser 模型或初始化过程中出现超时错误怎么办？","这是一个已知问题，在非 x86 机器（特别是新款 MacBook）上最容易发生。虽然完全消除等待时间较难，但项目方已通过 PR #397 优化了用户体验。如果遇到超时，可以尝试再次运行命令，因为第二次通常会成功。此外，确保你的 Docker 资源配置充足也有助于缓解此问题。","https:\u002F\u002Fgithub.com\u002Felastic\u002Felasticsearch-labs\u002Fissues\u002F307",{"id":108,"question_zh":109,"answer_zh":110,"source_url":111},30617,"在 Windows 上安装 chatbot-rag-app 时，构建 jq 包失败（Building wheel for jq failed）如何解决？","jq 库在 Windows 上没有预编译的 wheel 包，导致直接安装困难。解决方案有以下几种：\n1. 如果项目不再依赖该包（如 ingest 脚本已更新），可以直接从 requirements.txt 中移除 `jq`。\n2. 推荐使用 WSL (Windows Subsystem for Linux) 环境运行该项目，这样可以安装 Linux 版本的库从而避开此问题。\n3. 如果必须在原生 Windows 下使用，可能需要安装 Visual C++ Build Tools 等编译环境手动构建，但这通常比较复杂。","https:\u002F\u002Fgithub.com\u002Felastic\u002Felasticsearch-labs\u002Fissues\u002F120",{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},30618,"使用 Azure OpenAI 模型运行 chatbot-rag-app 时，提交问题后无法获得响应怎么办？","这通常是由于 .env 文件中的配置参数误解导致的。请检查以下关键点：\n1. `OPENAI_ENGINE`：在 Azure 中，这个值应该是你的**部署名称 (Deployment Name)**，而不是基础模型名称（如 'gpt-4'）。\n2. `OPENAI_VERSION`：必须遵循 `YYYY-MM-DD` 格式（例如 `2023-05-15`），而不是 Azure 门户中显示的简短版本号（如 `0613`）。\n3. `OPENAI_BASE_URL`：确保使用 Azure 门户中 \"Keys & Endpoints\" 页面提供的完整 Endpoint 地址。","https:\u002F\u002Fgithub.com\u002Felastic\u002Felasticsearch-labs\u002Fissues\u002F213",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},30619,"运行 plagiarism detection demo 时，TransformerModel 初始化报错或 reindex 操作超时怎么办？","该示例代码存在几个已知问题，需按以下方式修正：\n1. **参数传递方式**：最新版的 `eland` 库要求 `TransformerModel` 使用关键字参数。请将代码从 `TransformerModel(hf_model_id, \"text_embedding\")` 修改为 `TransformerModel(model_id=hf_model_id, task_type=\"text_embedding\")`。\n2. **Pipeline 名称错误**：代码中引用的 pipeline 名称拼写错误。应将 `plagiarism-pipeline` 更正为 `plagiarism-checker-pipeline`，否则会导致 reindex 失败。\n3. **同步调用超时**：修正 pipeline 名称后，同步 reindex 调用通常能正常工作；若仍超时，可尝试将 `wait_for_completion` 设置为 `False`。","https:\u002F\u002Fgithub.com\u002Felastic\u002Felasticsearch-labs\u002Fissues\u002F144",[],[124,133,141,149,157,166],{"id":125,"name":126,"github_repo":127,"description_zh":128,"stars":129,"difficulty_score":130,"last_commit_at":131,"category_tags":132,"status":98},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[79,81,78,82],{"id":134,"name":135,"github_repo":136,"description_zh":137,"stars":138,"difficulty_score":130,"last_commit_at":139,"category_tags":140,"status":98},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[81,78,79],{"id":142,"name":143,"github_repo":144,"description_zh":145,"stars":146,"difficulty_score":97,"last_commit_at":147,"category_tags":148,"status":98},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",151314,"2026-04-11T23:32:58",[81,79,80],{"id":150,"name":151,"github_repo":152,"description_zh":153,"stars":154,"difficulty_score":97,"last_commit_at":155,"category_tags":156,"status":98},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[81,78,79],{"id":158,"name":159,"github_repo":160,"description_zh":161,"stars":162,"difficulty_score":97,"last_commit_at":163,"category_tags":164,"status":98},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[165,79,78,81],"插件",{"id":167,"name":168,"github_repo":169,"description_zh":170,"stars":171,"difficulty_score":97,"last_commit_at":172,"category_tags":173,"status":98},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[165,81]]