[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-akshata29--entaoai":3,"tool-akshata29--entaoai":61},[4,18,28,37,45,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},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",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},9989,"n8n","n8n-io\u002Fn8n","n8n 是一款面向技术团队的公平代码（fair-code）工作流自动化平台，旨在让用户在享受低代码快速构建便利的同时，保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点，帮助用户轻松连接 400 多种应用与服务，实现复杂业务流程的自动化。\n\nn8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”：既可以通过直观的可视化界面拖拽节点搭建流程，也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外，n8n 原生集成了基于 LangChain 的 AI 能力，支持用户利用自有数据和模型构建智能体工作流。在部署方面，n8n 提供极高的自由度，支持完全自托管以保障数据隐私和控制权，也提供云端服务选项。凭借活跃的社区生态和数百个现成模板，n8n 让构建强大且可控的自动化系统变得简单高效。",184740,2,"2026-04-19T23:22:26",[16,14,13,15,27],"插件",{"id":29,"name":30,"github_repo":31,"description_zh":32,"stars":33,"difficulty_score":10,"last_commit_at":34,"category_tags":35,"status":17},10095,"AutoGPT","Significant-Gravitas\u002FAutoGPT","AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台，核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点，让用户只需设定目标，AI 即可自主规划步骤、调用工具并持续运行直至完成任务。\n\n无论是开发者、研究人员，还是希望提升工作效率的普通用户，都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体；研究人员能基于开源架构探索多智能体协作机制；而非技术背景用户也可直接选用预置的智能体模板，立即投入实际工作场景。\n\nAutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑，每个块负责单一动作，灵活且易于调试。同时，平台支持本地自托管与云端部署两种模式，兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本，即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛，让人人都能成为 AI 的创造者与受益者。",183572,"2026-04-20T04:47:55",[13,36,27,14,15],"语言模型",{"id":38,"name":39,"github_repo":40,"description_zh":41,"stars":42,"difficulty_score":10,"last_commit_at":43,"category_tags":44,"status":17},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",[14,15,13],{"id":46,"name":47,"github_repo":48,"description_zh":49,"stars":50,"difficulty_score":24,"last_commit_at":51,"category_tags":52,"status":17},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 真正成长为懂上",161147,"2026-04-19T23:31:47",[14,13,36],{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":24,"last_commit_at":59,"category_tags":60,"status":17},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":76,"owner_website":76,"owner_url":80,"languages":81,"stars":108,"forks":109,"last_commit_at":110,"license":111,"difficulty_score":112,"env_os":113,"env_gpu":113,"env_ram":113,"env_deps":114,"category_tags":123,"github_topics":124,"view_count":24,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":138,"updated_at":139,"faqs":140,"releases":171},10042,"akshata29\u002Fentaoai","entaoai","Chat and Ask on your own data.  Accelerator to quickly upload your own enterprise data and use OpenAI services to chat to that uploaded data and ask questions","entaoai 是一款帮助企业和开发者快速构建专属智能问答系统的开源工具。它允许用户上传内部文档、报告等私有数据，结合 Azure OpenAI 服务（如 GPT-3.5-turbo），实现基于企业自有知识的自然语言对话与精准问答。\n\n该工具主要解决了通用大模型无法访问企业内部私有数据、容易产生“幻觉”或回答不准确的问题。通过检索增强生成（RAG）技术，entaoai 能确保 AI 的回答严格依据上传的上下文，大幅提升信息的可靠性和安全性。\n\nentaoai 特别适合拥有私有数据资产的企业开发者、技术团队及 AI 研究人员使用。用户只需简单配置，即可将数据接入 Pinecone、Redis 或 Azure Cognitive Search 等向量数据库进行索引，迅速搭建起类似 ChatGPT 但更懂业务的知识助手。\n\n其技术亮点在于不仅支持基础对话，还集成了先进的多模态 RAG 模式，并提供了完善的评估流程（Prompt Flow）。系统可利用大模型自动从“依据充分性”、“语义相似度”、“逻辑连贯性”等多个维度对回答质量进行量化评估，帮助开发者持续优化模型表现。作为一个经过多次迭代重构","entaoai 是一款帮助企业和开发者快速构建专属智能问答系统的开源工具。它允许用户上传内部文档、报告等私有数据，结合 Azure OpenAI 服务（如 GPT-3.5-turbo），实现基于企业自有知识的自然语言对话与精准问答。\n\n该工具主要解决了通用大模型无法访问企业内部私有数据、容易产生“幻觉”或回答不准确的问题。通过检索增强生成（RAG）技术，entaoai 能确保 AI 的回答严格依据上传的上下文，大幅提升信息的可靠性和安全性。\n\nentaoai 特别适合拥有私有数据资产的企业开发者、技术团队及 AI 研究人员使用。用户只需简单配置，即可将数据接入 Pinecone、Redis 或 Azure Cognitive Search 等向量数据库进行索引，迅速搭建起类似 ChatGPT 但更懂业务的知识助手。\n\n其技术亮点在于不仅支持基础对话，还集成了先进的多模态 RAG 模式，并提供了完善的评估流程（Prompt Flow）。系统可利用大模型自动从“依据充分性”、“语义相似度”、“逻辑连贯性”等多个维度对回答质量进行量化评估，帮助开发者持续优化模型表现。作为一个经过多次迭代重构的成熟项目，entaoai 专注于核心的聊天、流式传输、问答及管理功能，是构建企业级知识大脑的高效加速器。","# Chat with your enterprise data using LLM\n\nThis sample demonstrates a few approaches for creating ChatGPT-like experiences over your own data. It uses Azure OpenAI Service to access the ChatGPT model (gpt-35-turbo and gpt3), and vector store (Pinecone, Redis and others) or Azure cognitive search for data indexing and retrieval.\n\nThe repo provides a way to upload your own data so it's ready to try end to end.\n\n## Updates\n\n* 3\u002F30\u002F2024 - Refactored to keep on Chat, Chat Stream, QnA, Upload and Admin functionality.  All others will be moved to it's own repo.\n* 3\u002F10\u002F2024 - Move the Prompt Flow version to [entaoaipf](https:\u002F\u002Fgithub.com\u002Fakshata29\u002Fentaoaipf)\n* 3\u002F9\u002F2024 - Initial version of advanced RAG techniques and Multi-modal RAG pattern\n* 2\u002F28\u002F2024 - Removed SEC analysis features and it's moved into it's own repo at [sec](https:\u002F\u002Fgithub.com\u002Fakshata29\u002Fsec)\n* 1\u002F28\u002F2024 - Remove PitchBook features as they are moved into it's own repo at [pib](https:\u002F\u002Fgithub.com\u002Fakshata29\u002Fpitchbook)\n* 1\u002F19\u002F2024 - Updated the python package & OpenAI > 1.0.  Changes made to all Python API for breaking changes introduced in OpenAI and langchain.\n* 10\u002F12\u002F2023 - Initial version of [Autonomous](.\u002Fapi\u002FPromptFlow\u002FAutonomous\u002F) PromptFlow.  For now supporting the Pinecone indexes, but support for Cognitive Search and Redis will be updated soon.\n* 9\u002F29\u002F2023 - Added [Evaluate](.\u002Fapi\u002FPromptFlow\u002FEvaluate\u002F) PromptFlow.  Prompt Flow once created in Azure ML, can be attached to your existing run to evaluate against the following evaluation process :\n  * Groundness - The Q&A Groundedness evaluation flow will evaluate the Q&A Retrieval Augmented Generation systems by leveraging the state-of-the-art Large Language Models (LLM) to measure the quality and safety of your responses. Utilizing GPT-3.5 as the Language Model to assist with measurements aims to achieve a high agreement with human evaluations compared to traditional mathematical measurements. gpt_groundedness (against context): Measures how grounded the model's predicted answers are against the context. Even if LLM’s responses are true, if not verifiable against context, then such responses are considered ungrounded.\n  * Ada Similarity - The Q&A ada_similarity evaluation flow will evaluate the Q&A Retrieval Augmented Generation systems by leveraging the state-of-the-art Large Language Models (LLM) to measure the quality and safety of your responses. Utilizing GPT-3.5 as the Language Model to assist with measurements aims to achieve a high agreement with human evaluations compared to traditional mathematical measurements. The Ada Similarity evaluation flow allows you to assess and evaluate your model with the LLM-assisted ada similarity metri ada_similarity: Measures the cosine similarity of ada embeddings of the model prediction and the ground truth. ada_similarity is a value in the range [0, 1].\n  * Coherence - The Q&A Coherence evaluation flow will evaluate the Q&A Retrieval Augmented Generation systems by leveraging the state-of-the-art Large Language Models (LLM) to measure the quality and safety of your responses. Utilizing GPT-3.5 as the Language Model to assist with measurements aims to achieve a high agreement with human evaluations compared to traditional mathematical measurements. The Coherence evaluation flow allows you to assess and evaluate your model with the LLM-assisted Coherence metric. gpt_coherence: Measures the quality of all sentences in a model's predicted answer and how they fit together naturally. Coherence is scored on a scale of 1 to 5, with 1 being the worst and 5 being the best.\n  * Similarity - The Q&A Similarity evaluation flow will evaluate the Q&A Retrieval Augmented Generation systems by leveraging the state-of-the-art Large Language Models (LLM) to measure the quality and safety of your responses. Utilizing GPT-3.5 as the Language Model to assist with measurements aims to achieve a high agreement with human evaluations compared to traditional mathematical measurements.  The Similarity evaluation flow allows you to assess and evaluate your model with the LLM-assisted Similarity metric. gpt_similarity: Measures similarity between user-provided ground truth answers and the model predicted answer. Similarity is scored on a scale of 1 to 5, with 1 being the worst and 5 being the best.\n  * F1 Score - The Q&A f1-score evaluation flow will evaluate the Q&A Retrieval Augmented Generation systems using f1-score based on the word counts in predicted answer and ground truth. The f1-score evaluation flow allows you to determine the f1-score metric using number of common tokens between the normalized version of the ground truth and the predicted answer. F1-score: Compute the f1-Score based on the tokens in the predicted answer and the ground truth. F1-score is a value in the range [0, 1].\nGroundedness metric is scored on a scale of 1 to 5, with 1 being the worst and 5 being the best.\n* 9\u002F22\u002F2023 - Added PromptFlow for [SqlAsk](.\u002Fapi\u002FPromptFlow\u002FSqlAsk\u002F).  Ensure `PFSQLASK_URL` and `PFSQLASK_KEY` configuration values are added to deployed endpoint to enable the feature.  Also make sure `SynapseName`, `SynapsePool`, `SynapseUser` and `SynapsePassword` configuration values are added to `entaoai` PromptFlow connection.  Moved deleting the Session Capability for ChatGpt to Admin Page.\n* 9\u002F20\u002F2023 - Added configuration to allow end user to change the Search Type for Cognitive Search Vector Store index (Hybrid, Similarity\u002FVector and Hybrid Re-rank), based on the [Best Practices](https:\u002F\u002Ftechcommunity.microsoft.com\u002Ft5\u002Fazure-ai-services-blog\u002Fazure-cognitive-search-outperforming-vector-search-with-hybrid\u002Fba-p\u002F3929167) we shared.  QnA, Chat and Prompt Flow are modified.  QnA and Chat are implementing the customized Vector store implementation of Langchain and Prompt Flow using the helper functions.  Fixed the issue with QnA\u002FChat\u002FPromptFlow not generating followup-questions.\n* 9\u002F18\u002F2023 - Refactored SQL NLP to not use Langchain Database Agent\u002FChain and instead use custom Prompts.\n* 9\u002F15\u002F2023 - Modified the azure search package to 11.4.0b9 and langchain to latest version.  Added capability to perform [evaluation](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fmachine-learning\u002Fprompt-flow\u002Fhow-to-develop-an-evaluation-flow?view=azureml-api-2) on PromptFlow for both QnA and Chat.  [Bert PDF](.\u002FWorkshop\u002FData\u002FPDF\u002FBert.pdf) and [Evaluation Data](.\u002Fapi\u002FPromptFlow\u002FQuestionAnswering\u002Fbert.jsonl) can be used to perform Batch and Evaluation in Prompt Flow.  [Sample Notebook](.\u002FWorkshop\u002F12_PromptFlowQa.ipynb) showcasing the flow and E2E process is available.  [Bert Chat](.\u002FWorkshop\u002Fpromptflow\u002FBertChat\u002F) folder allows you to test E2E Prompt Flow, Batch Run and Evaluation in form of Notebook.\n* 9\u002F3\u002F2023 - Added [API](.\u002Fapi\u002FPromptFlow\u002FChat\u002F) for [Chat](.\u002Fassets\u002FChatPf.png) using the Prompt Flow.  Allow end-user to select between Azure Functions as API (`ApiType` Configuration in Web App) or using Prompt Flow Managed endpoint.\n* 9\u002F2\u002F2023 - Added [API](.\u002Fapi\u002FPromptFlow\u002FQuestionAnswering\u002F) for [Question Answering](.\u002Fassets\u002FQaPf.png) using the Prompt Flow.  Allow end-user to select between Azure Functions as API (`ApiType` Configuration in Web App) or using Prompt Flow Managed endpoint.\n* 8\u002F31\u002F2023 - Added example for [LLMOps](LLMOps.md) using [Prompt Flow](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fmachine-learning\u002Fprompt-flow\u002Foverview-what-is-prompt-flow?view=azureml-api-2).  The repo will be adding the flexibility to use the Prompt Flow Deployed Model as an alternative to current Azure Functions.\n* 8\u002F20\u002F2023 - Added support for the Markdown files (as zip file) and removed the chunk_size=1 from Azure OpenAiEmbedding\n* 8\u002F11\u002F2023 - Fixed the issue with Streaming Chat feature.\n* 8\u002F10\u002F2023 - **Breaking Changes** - Refactored all code to use `OpenAiEndPoint` configuration value instead of `OpenAiService`.  It is to support the best practices as they are outlined in [Enterprise Logging](https:\u002F\u002Fgithub.com\u002FAzure-Samples\u002Fopenai-python-enterprise-logging) via Azure API Management. Your `OpenAiEndPoint` if using APIM will be API Gateway URL and the `OpenAiKey` will be the Product\u002FUnlimited key.   If not using APIM, you don't need to change the key, but ensure `OpenAiEndPoint` is fully qualified URL of your AOAI deployment.  `OpenAiService` is no longer used.  Changes did impact the working on Chat on Stream feature, so it's disabled for now and will be enabled once tested and fixed.\n* 8\u002F9\u002F2023 - Added Function calling in the ChatGpt interface as checkbox.  Sample demonstrate ability to call functions.  Currently [Weather API](https:\u002F\u002Frapidapi.com\u002Fapishub\u002Fapi\u002Fyahoo-weather5), [Stock API](https:\u002F\u002Frapidapi.com\u002Falphavantage\u002Fapi\u002Falpha-vantage) and Bing Search is supported. Function calling is in preview and supported only from \"API Version\" of \"2023-07-01-preview\", so make sure you update existing deployment to use that version.  Details on calling [Functions](https:\u002F\u002Fgithub.com\u002FAzure-Samples\u002Fopenai\u002Fblob\u002Fmain\u002FBasic_Samples\u002FFunctions\u002Fworking_with_functions.ipynb).  For existing deployment add `WeatherEndPoint`, `WeatherHost`, `StockEndPoint`, `StockHost` and `RapidApiKey` configuration to Azure Function App.\n* 8\u002F5\u002F2023 - Added Chat Interface with \"Stream\" Option.  This feature allows you to stream the conversation to the client.  You will need to add `OpenAiChat`, `OpenAiEmbedding`, `OpenAiEndPoint`, `OpenAiKey`, `OpenAiApiKey`, `OpenAiService`, `OpenAiVersion`, `PineconeEnv`, `PineconeIndex`, `PineconeKey`, `RedisAddress`, `RedisPassword`, `RedisPort` property in Azure App Service (Webapp) to enable the feature for existing deployment.\n* 7\u002F30\u002F2023 - Removed unused Code - SummaryAndQa and Chat\n* 7\u002F28\u002F2023 - Started removing the Davinci model usage.  For now removed the usage from all functionality except workshop.  Refactored Summarization functionality based on the feedback to allow user to specify the prompt and pre-defined Topics to summarize it on.\n* 7\u002F26\u002F2023 - Remove OpenAI Playground from Developer Tools as advanced features of that are available in ChatGPT section.\n* 7\u002F25\u002F2023 - Add tab for the Chat capabilities to support ChatGpt capability directly from the model instead of \"Chat on Data\".  You will need to add `CHATGPT_URL` property in Azure App Service (Webapp) to enable the feature outside of deploying the new Azure Function.\n* 7\u002F23\u002F2023 - Added the rest of the feature for PIB UI and initial version of generating the PowerPoint deck as the output.  For new feature added ensure you add `FMPKEY` variable to webapp configuration.\n* 7\u002F20\u002F2023 - Added feature to talk to Pib Data (Sec Filings & Earning Call Transcript).  Because new Azure function is deployed, ensure `PIBCHAT_URL` property is added to Azure WebApp with the URL for your deployed Azure Functions\n* 7\u002F18\u002F2023 - Refactored the PIB code to solve some of the performance issue and bug fixes.\n* 7\u002F17\u002F2023 - Removed GPT3 chat interface with retirement of \"Davinci\" models.\n* 7\u002F16\u002F2023 - Initial version of Pib UI (currently supporting 5 Steps - Company Profile, Call Transcripts, Press Releases, Sec Filings and Ratings\u002FRecommendations).  You will need access to Paid subscription (FMP or modify based on what your enterprise have access to).  To use with FMP you will need to add `FmpKey` in Azure Functions.  Because of circular dependency you need to manually add `SecDocPersistUrl` and `SecExtractionUrl` manually in Azure Functions.\n* 7\u002F14\u002F2023 - Add support for GPT3.5 16K model and ability to chunk document > 4000 tokens with > 500 overlap.  For the ChunkSize > 4000, it will default to 16K token for both QnA and Chat functionality. Added identity provider to the application and authentication for QnA and Chat interface.  For GPT3.5 16k model, you will need to add `OpenAiChat16k` property in Azure Function app.\n* 7\u002F13\u002F2023 - Allow end user to select ChunkSize and ChunkOverlap Configuration.  Initial version of overriding prompt template.\n* 7\u002F11\u002F2023 - Functional PIB CoPilot in the form of the [notebook](.\u002FWorkshop\u002F10_PibCoPilot.ipynb).\n* 7\u002F8\u002F2023 - Added the feature to Rename the session for ChatGPT.   Also added the UI for the Evaluator Tool.  This feature focuses on performing the LLM based evaluation on your document. It auto-generates the test dataset (with Question and Answers) and perform the grading on that document using different parameters and generates the evaluation results.  It is built on [Azure Durable Functions](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fazure-functions\u002Fdurable\u002Fdurable-functions-overview?tabs=csharp-inproc) and is implemented using the [Function Chaining](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fazure-functions\u002Fdurable\u002Fdurable-functions-sequence?tabs=csharp) pattern. You will need to add `BLOB_EVALUATOR_CONTAINER_NAME` (ensure the same container name is created in storage account) and `RUNEVALUATION_URL`  (URL of the Durable function deployment) configuration in Azure Web App for existing deployment and if you want to use the Evaluator feature.  In the Azure function deployment add `AzureWebJobsFeatureFlags` (value EnableWorkerIndexing) and `OpenAiEvaluatorContainer` settings.\n* 7\u002F5\u002F2023 - Added the feature to Delete the session.  That feature requires the feature that is in [preview](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fcosmos-db\u002Fnosql\u002Fhow-to-delete-by-partition-key?tabs=python-example) and you will need to enable that on the CosmosDB account on your subscription.  Added simple try\u002Fcatch block in case if you have not enabled\u002Fdeployed the CosmosDB to continue chatGPT implementation.\n* 7\u002F4\u002F2023 - Initial version of storing \"Sessions\" for GPT3.5\u002FChatGpt interface.  Session and messages are stored\u002Fretrieved from CosmosDb.  Make sure you have CosmosDb service provisioned or create a new one (for existing deployment).  You will need to add `CosmosEndpoint`, `CosmosKey`, `CosmosDatabase` and `CosmosContainer` settings in both Azure Functions App and Web App.\n* 6\u002F25\u002F2023 - Notebook [showcasing](#qa-llm-evaluation) the evaluation of the answer quality in systematic way (auto generating questions and evaluation chain), supporting LLM QA settings (chunk size, overlap, embedding technique). Refer to [Evaluator](.\u002FWorkshop\u002F99_Evaluator.ipynb) notebook for more information.\n* 6\u002F18\u002F2023 - Add the admin page supporting Knowledge base management.  \n* 6\u002F17\u002F2023 - Added \"Question List\" button for Ask a question feature to display the list of all the questions that are in the Knowledge base.  Following three properties `SEARCHSERVICE` and `KBINDEXNAME` (default value of aoaikb) needs to be added to Azure App Service to enable \"Question List\" button feature.\n* 6\u002F16\u002F2023 - Add the feature to use Azure Cognitive Search as Vector store for storing the [cached Knowledge base](#qa-over-your-data-with-cache).  The questions that are not in KB are sent to LLM model to find the answer via OAI, or else it is responded back from the Cached Datastore.  New Property `KbIndexName` needs to be added to Azure Function app.  Added the Notebook to test out the feature as part of the workshop. TODO : Add the feature to add the question to KB from the chat interface (and make it session based). A feature further to \"regenerate\" answer from LLM (instead of cached answer) will be added soon.  \n* 6\u002F7\u002F2023 - Add OpenAI Playground in Developer Tools and initial version of building the CoPilot (for now with Notebook, but eventually will be moved as CoPilot feature).  Add the script, recording and example for Real-time Speech analytics use-case.  More to be added soon.\n* 5\u002F27\u002F2023 - Add Workshop content in the form of the notebooks that can be leveraged to learn\u002Fexecute the scenarios.  You can find the notebooks in the [Workshop](Workshop) folder.  Details about workshop content is available [here](READMEWORKSHOP.md).\n* 5\u002F26\u002F2023 - Add Summarization feature to summarize the document either using stuff, mapreduce or refine summarization.  To use this feature (on existing deployment) ensure you add the `OpenAiSummaryContainer` configuration to Function app and `BLOB_SUMMARY_CONTAINER_NAME` configuration to Azure App Service (Ensure that the value you enter is the same as the container name in Azure storage and that you have created the container).  You also need to add `PROCESSSUMMARY_URL` configuration to Azure App Service (Ensure that the value you enter is the same as the Azure Function URL).\n* 5\u002F24\u002F2023 - Add feature to upload CSV files and CSV Agent to answer\u002Fchat questions on the tabular data.  Smart Agent also supports answering questions on CSV data.\n* 5\u002F22\u002F2023 - Initial version of \"Smart Agent\" that gives you flexibility to talk to all documents uploaded in the solution.  It also allow you to talk to SQL Database Scenario.  As more features are added, agent will keep on building upon that (for instance talk to CSV\u002FExcel or Tabular data)\n* 5\u002F21\u002F2023 - Add Developer Tools section - Experimental code conversion and Prompt guru.\n* 5\u002F17\u002F2023 - Change the edgar source to Cognitive search vector store instead of Redis.\n* 5\u002F15\u002F2023 - Add the option to use \"Cognitive Search\" as Vector store for storing the index.  Azure Cognitive Search offers pure vector search and hybrid retrieval – as well as a sophisticated re-ranking system powered by Bing in a single integrated solution. [Sign-up](https:\u002F\u002Faka.ms\u002FVectorSearchSignUp). Support uploading WORD documents.\n* 5\u002F10\u002F2023 - Add the options on how document should be chunked.  If you want to use the Form Recognizer, ensure the Form recognizer resource is created and the appropriate application settings `FormRecognizerKey` and `FormRecognizerEndPoint` are configured.\n* 5\u002F07\u002F2023 - Option available to select either Azure OpenAI or OpenAI.  For OpenAI ensure you have `OpenAiApiKey` in Azure Functions settings.  For Azure OpenAI you will need `OpenAiKey`, `OpenAiService` and `OpenAiEndPoint` Endpoint settings.  You can also select that option for Chat\u002FQuestion\u002FSQL Nlp\u002FSpeech Analytics and other features (from developer settings page).\n* 5\u002F03\u002F2023 - Password required for Upload and introduced Admin page starting with Index Management\n* 4\u002F30\u002F2023 - Initial version of Task Agent Feature added.  Autonomous Agents are agents that designed to be more long running. You give them one or multiple long term goals, and they independently execute towards those goals. The applications combine tool usage and long term memory.  Initial feature implements [Baby AGI](https:\u002F\u002Fgithub.com\u002Fyoheinakajima\u002Fbabyagi) with execution tools\n* 4\u002F29\u002F2023 - AWS S3 Process Integration using S3, AWS Lambda Function and Azure Data Factory (automated deployment not available yet, scripts are available in \u002FDeployment\u002Faws folder)\n* 4\u002F28\u002F2023 - Fix Bugs, Citations & Follow-up questions across QA & Chat.  Prompt bit more restrictive to limit responding from the document.\n* 4\u002F25\u002F2023 - Initial version of Power Virtual Agent\n* 4\u002F21\u002F2023 - Add SQL Query & SQL Data tab to SQL NLP and fix Citations & Follow-up questions for Chat & Ask features\n* 4\u002F17\u002F2023 - Real-time Speech Analytics and Speech to Text and Text to Speech for Chat & Ask Features. (You can configure Text to Speech feature from the Developer settings.  You will need Azure Speech Services)\n* 4\u002F13\u002F2023 - Add new feature to support asking questions on multiple document using [Vector QA Agent](https:\u002F\u002Fpython.langchain.com\u002Fen\u002Flatest\u002Fmodules\u002Fagents\u002Ftoolkits\u002Fexamples\u002Fvectorstore.html)\n* 4\u002F8\u002F2023 - Ask your SQL - Using [SQL Database Agent](https:\u002F\u002Fpython.langchain.com\u002Fen\u002Flatest\u002Fmodules\u002Fagents\u002Ftoolkits\u002Fexamples\u002Fsql_database.html) or Using [SQL Database Chain](https:\u002F\u002Fpython.langchain.com\u002Fen\u002Flatest\u002Fmodules\u002Fchains\u002Fexamples\u002Fsqlite.html)\n* 3\u002F29\u002F2023 - Automated Deployment script\n* 3\u002F23\u002F2023 - Add Cognitive Search as option to store documents\n* 3\u002F19\u002F2023 - Add GPT3 Chat Implementation\n* 3\u002F18\u002F2023 - API to generate summary on documents & Sample QA\n* 3\u002F17\u002F2023\n  * Support uploading Multiple documents\n  * Bug fix - Redis Vectorstore Implementation\n* 3\u002F16\u002F2023 - Initial Release, Ask your Data and Chat with your Data\n\n## Test Website\n\n[Chat and Ask over your data](https:\u002F\u002Fdataaipdfchat.azurewebsites.net\u002F)\n\n## Features\n\n[List of Features](Features.md)\n\n## Architecture\n\n![Architecture](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakshata29_entaoai_readme_0edb8d4c1bec.png)\n\n## Azure Architecture\n\n![Azure Services](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakshata29_entaoai_readme_452701b66624.png)\n\n## QA over your data with Cache\n\n![QA Cache](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakshata29_entaoai_readme_26aaf11fd4b9.png)\n\n## QA LLM Evaluation\n\n![QA LLM Evaluation](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakshata29_entaoai_readme_403944635680.png)\n\n## Getting Started\n\n[Get Started](GettingStarted.md)\n\n## Configuration\n\n[Application and Function App Configuration](Configuration.md)\n\n## Resources\n\n* [Revolutionize your Enterprise Data with ChatGPT: Next-gen Apps w\u002F Azure OpenAI and Cognitive Search](https:\u002F\u002Faka.ms\u002Fentgptsearchblog)\n* [Azure Cognitive Search](https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fsearch\u002Fsearch-what-is-azure-search)\n* [Azure OpenAI Service](https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fcognitive-services\u002Fopenai\u002Foverview)\n* [Redis Search](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fazure-cache-for-redis\u002Fcache-redis-modules#redisearch)\n* [Pinecone](https:\u002F\u002Fwww.pinecone.io\u002Flearn\u002Fpinecone-v2\u002F)\n* [Cognitive Search Vector Store](https:\u002F\u002Faka.ms\u002FVectorSearchSignUp)\n\n## Contributions\n\nWe are open to contributions, whether it is in the form of new feature, update existing functionality or better documentation.  Please create a pull request and we will review and merge it.\n\n### Note\n\n>Adapted from the repo at [OpenAI-CogSearch](https:\u002F\u002Fgithub.com\u002FAzure-Samples\u002Fazure-search-openai-demo\u002F),  [Call Center Analytics](https:\u002F\u002Fgithub.com\u002Famulchapla\u002FAI-Powered-Call-Center-Intelligence), [Auto Evaluator](https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Fauto-evaluator) and [Edgar Crawler](https:\u002F\u002Fgithub.com\u002Fnlpaueb\u002Fedgar-crawler)\n","# 使用大语言模型与您的企业数据进行对话\n\n本示例展示了几种基于您自有数据构建类似 ChatGPT 体验的方法。它使用 Azure OpenAI 服务访问 ChatGPT 模型（gpt-35-turbo 和 gpt3），并结合向量存储（如 Pinecone、Redis 等）或 Azure 认知搜索来实现数据索引和检索。\n\n该仓库提供了一种上传您自有数据的方式，方便您从头到尾进行端到端的尝试。\n\n## 更新\n\n* 2024年3月30日 - 重构以保留聊天、聊天流、问答、上传和管理功能。其他功能将被移至独立的代码库。\n* 2024年3月10日 - 将Prompt Flow版本迁移到[entaoaipf](https:\u002F\u002Fgithub.com\u002Fakshata29\u002Fentaoaipf)。\n* 2024年3月9日 - 高级RAG技术和多模态RAG模式的初始版本。\n* 2024年2月28日 - 移除SEC分析功能，并将其移至独立的代码库[sec](https:\u002F\u002Fgithub.com\u002Fakshata29\u002Fsec)。\n* 2024年1月28日 - 移除PitchBook功能，这些功能已被移至独立的代码库[pib](https:\u002F\u002Fgithub.com\u002Fakshata29\u002Fpitchbook)。\n* 2024年1月19日 - 更新了Python包及OpenAI > 1.0。针对OpenAI和Langchain引入的破坏性变更，对所有Python API进行了相应调整。\n* 2023年10月12日 - [Autonomous](.\u002Fapi\u002FPromptFlow\u002FAutonomous\u002F) PromptFlow的初始版本。目前支持Pinecone索引，未来将很快支持认知搜索和Redis。\n* 2023年9月29日 - 添加了[Evaluate](.\u002Fapi\u002FPromptFlow\u002FEvaluate\u002F) PromptFlow。在Azure ML中创建Prompt Flow后，可以将其附加到现有运行中，以根据以下评估流程进行评估：\n  * Groundness - Q&A Groundedness评估流程利用最先进的大型语言模型（LLM）来评估Q&A检索增强生成系统的质量和安全性，从而衡量响应的质量和安全性。使用GPT-3.5作为语言模型辅助测量，旨在实现与传统数学测量相比更高的与人类评估的一致性。gpt_groundedness（相对于上下文）：衡量模型预测答案相对于上下文的 groundedness程度。即使LLM的回答是真实的，如果无法通过上下文验证，则这些回答被视为ungrounded。\n  * Ada Similarity - Q&A ada_similarity评估流程同样利用最先进的大型语言模型（LLM）来评估Q&A检索增强生成系统的质量和安全性。使用GPT-3.5作为语言模型辅助测量，旨在实现与传统数学测量相比更高的与人类评估的一致性。Ada Similarity评估流程允许您使用LLM辅助的ada similarity指标来评估您的模型。ada_similarity：衡量模型预测与真实答案之间ada嵌入的余弦相似度。ada_similarity的值范围为[0, 1]。\n  * Coherence - Q&A Coherence评估流程利用最先进的大型语言模型（LLM）来评估Q&A检索增强生成系统的质量和安全性。使用GPT-3.5作为语言模型辅助测量，旨在实现与传统数学测量相比更高的与人类评估的一致性。Coherence评估流程允许您使用LLM辅助的Coherence指标来评估您的模型。gpt_coherence：衡量模型预测答案中所有句子的质量以及它们之间的自然连贯性。Coherence评分范围为1到5，1表示最差，5表示最好。\n  * Similarity - Q&A Similarity评估流程利用最先进的大型语言模型（LLM）来评估Q&A检索增强生成系统的质量和安全性。使用GPT-3.5作为语言模型辅助测量，旨在实现与传统数学测量相比更高的与人类评估的一致性。Similarity评估流程允许您使用LLM辅助的Similarity指标来评估您的模型。gpt_similarity：衡量用户提供的真实答案与模型预测答案之间的相似度。Similarity评分范围为1到5，1表示最差，5表示最好。\n  * F1 Score - Q&A f1-score评估流程基于预测答案和真实答案中的词数计算f1分数。该评估流程允许您通过标准化后的真实答案和预测答案之间的共同标记数量来确定f1分数。F1-score：根据预测答案和真实答案中的标记计算f1分数。F1-score的值范围为[0, 1]。\nGroundedness指标的评分范围为1到5，1表示最差，5表示最好。\n* 2023年9月22日 - 为[SqlAsk](.\u002Fapi\u002FPromptFlow\u002FSqlAsk\u002F)添加了PromptFlow。请确保在部署的端点中添加`PFSQLASK_URL`和`PFSQLASK_KEY`配置值，以启用此功能。同时，请确认已将`SynapseName`、`SynapsePool`、`SynapseUser`和`SynapsePassword`配置值添加到`entaoai` PromptFlow连接中。将ChatGpt的会话能力删除功能移至管理页面。\n* 2023年9月20日 - 添加了配置，允许最终用户根据我们分享的[最佳实践](https:\u002F\u002Ftechcommunity.microsoft.com\u002Ft5\u002Fazure-ai-services-blog\u002Fazure-cognitive-search-outperforming-vector-search-with-hybrid\u002Fba-p\u002F3929167)更改认知搜索向量存储索引的搜索类型（混合、相似度\u002F向量以及混合重排）。问答、聊天和Prompt Flow均进行了修改。问答和聊天正在实施Langchain的自定义向量存储实现，而Prompt Flow则使用辅助函数。修复了问答\u002F聊天\u002FPrompt Flow无法生成后续问题的问题。\n* 2023年9月18日 - 重构了SQL NLP，不再使用Langchain数据库代理\u002F链条，而是采用自定义提示。\n* 2023年9月15日 - 将Azure搜索包更新至11.4.0b9，Langchain更新至最新版本。为Prompt Flow添加了[评估](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fmachine-learning\u002Fprompt-flow\u002Fhow-to-develop-an-evaluation-flow?view=azureml-api-2)功能，适用于问答和聊天。可以使用[Bert PDF](.\u002FWorkshop\u002FData\u002FPDF\u002FBert.pdf)和[评估数据](.\u002Fapi\u002FPromptFlow\u002FQuestionAnswering\u002Fbert.jsonl)在Prompt Flow中执行批量和评估操作。展示流程和端到端过程的[示例笔记本](.\u002FWorkshop\u002F12_PromptFlowQa.ipynb)可供使用。[Bert Chat](.\u002FWorkshop\u002Fpromptflow\u002FBertChat\u002F)文件夹允许您以笔记本形式测试E2E Prompt Flow、批量运行和评估。\n* 2023年9月3日 - 为[Chat](.\u002Fassets\u002FChatPf.png)使用Prompt Flow添加了[API](.\u002Fapi\u002FPromptFlow\u002FChat\u002F)。允许最终用户在Azure Functions作为API（Web应用中的`ApiType`配置）或使用Prompt Flow托管端点之间进行选择。\n* 2023年9月2日 - 为[Question Answering](.\u002Fassets\u002FQaPf.png)使用Prompt Flow添加了[API](.\u002Fapi\u002FPromptFlow\u002FQuestionAnswering\u002F)。允许最终用户在Azure Functions作为API（Web应用中的`ApiType`配置）或使用Prompt Flow托管端点之间进行选择。\n* 2023年8月31日 - 添加了使用[Prompt Flow](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fmachine-learning\u002Fprompt-flow\u002Foverview-what-is-prompt-flow?view=azureml-api-2)的[LLMOps](LLMOps.md)示例。该仓库将增加灵活性，允许将部署的Prompt Flow模型用作当前Azure Functions的替代方案。\n* 2023年8月20日 - 添加了对Markdown文件（作为zip文件）的支持，并从Azure OpenAiEmbedding中移除了chunk_size=1。\n* 2023年8月11日 - 修复了流式聊天功能的问题。\n* 2023年8月10日 - **重大变更** - 重构所有代码，使用`OpenAiEndPoint`配置值代替`OpenAiService`。此举旨在支持通过Azure API管理在[Enterprise Logging](https:\u002F\u002Fgithub.com\u002FAzure-Samples\u002Fopenai-python-enterprise-logging)中概述的最佳实践。如果您使用APIM，您的`OpenAiEndPoint`将是API网关URL，而`OpenAiKey`将是产品\u002F无限密钥。如果不使用APIM，您无需更改密钥，但请确保`OpenAiEndPoint`是您AOAI部署的完整合格URL。`OpenAiService`已不再使用。这些变更影响了聊天流功能的运行，因此暂时禁用，待测试并修复后再启用。\n* 2023年8月9日 - 在ChatGpt界面中添加了函数调用复选框。示例展示了调用函数的能力。目前支持[Weather API](https:\u002F\u002Frapidapi.com\u002Fapishub\u002Fapi\u002Fyahoo-weather5)、[Stock API](https:\u002F\u002Frapidapi.com\u002Falphavantage\u002Fapi\u002Falpha-vantage)和必应搜索。函数调用处于预览阶段，仅支持“2023-07-01-preview”版本的API，因此请确保更新现有部署以使用该版本。有关调用[函数](https:\u002F\u002Fgithub.com\u002FAzure-Samples\u002Fopenai\u002Fblob\u002Fmain\u002FBasic_Samples\u002FFunctions\u002Fworking_with_functions.ipynb)的详细信息。对于现有部署，在Azure Function App中添加`WeatherEndPoint`、`WeatherHost`、`StockEndPoint`、`StockHost`和`RapidApiKey`配置。\n* 2023年8月5日 - 添加带有“Stream”选项的聊天界面。此功能允许您将对话流式传输给客户端。要为现有部署启用此功能，您需要在Azure App Service（Webapp）中添加`OpenAiChat`、`OpenAiEmbedding`、`OpenAiEndPoint`、`OpenAiKey`、`OpenAiApiKey`、`OpenAiService`、`OpenAiVersion`、`PineconeEnv`、`PineconeIndex`、`PineconeKey`、`RedisAddress`、`RedisPassword`、`RedisPort`属性。\n* 2023年7月30日 - 删除了未使用的代码 - SummaryAndQa和Chat。\n* 2023年7月28日 - 开始逐步取消Davinci模型的使用。目前除研讨会外，所有功能均已停止使用。根据反馈重构了摘要功能，允许用户指定提示和预定义的主题来进行摘要。\n* 2023年7月26日 - 从开发者工具中移除OpenAI Playground，因为其高级功能已在ChatGPT部分提供。\n* 2023年7月25日 - 添加聊天功能标签，以直接从模型支持ChatGpt功能，而不是“基于数据的聊天”。要在不部署新的Azure Function的情况下启用此功能，您需要在Azure App Service（Webapp）中添加`CHATGPT_URL`属性。\n* 2023年7月23日 - 添加了PIB UI的其余功能以及生成PowerPoint演示文稿输出的初始版本。对于新功能，请确保在Webapp配置中添加`FMPKEY`变量。\n* 2023年7月20日 - 添加了与Pib Data（Sec Filings & Earning Call Transcript）对话的功能。由于部署了新的Azure Function，请确保在Azure WebApp中添加`PIBCHAT_URL`属性，并填写您已部署的Azure Functions的URL。\n* 2023年7月18日 - 重构了PIB代码，以解决一些性能问题和错误修复。\n* 2023年7月17日 - 随着“Davinci”模型的退役，移除了GPT3聊天界面。\n* 2023年7月16日 - Pib UI的初始版本（目前支持5个步骤 - 公司简介、电话会议记录、新闻稿、Sec Filings和评级\u002F建议）。您需要访问付费订阅（FMP或其他企业可访问的服务）。若使用FMP，您需要在Azure Functions中添加`FmpKey`。由于循环依赖关系，您还需要手动在Azure Functions中添加`SecDocPersistUrl`和`SecExtractionUrl`。\n* 2023年7月14日 - 添加对GPT3.5 16K模型的支持，以及将文档分块>4000标记且重叠>500的能力。对于ChunkSize > 4000，问答和聊天功能将默认使用16K标记。为应用程序添加了身份提供商，并为问答和聊天界面实现了认证。对于GPT3.5 16k模型，您需要在Azure Function app中添加`OpenAiChat16k`属性。\n* 2023年7月13日 - 允许最终用户选择ChunkSize和ChunkOverlap配置。初始版本的覆盖提示模板。\n* 2023年7月11日 - 以[笔记本](.\u002FWorkshop\u002F10_PibCoPilot.ipynb)的形式实现了功能性PIB CoPilot。\n* 2023年7月8日 - 添加了为ChatGPT重命名会话的功能。同时添加了评估工具的UI。此功能专注于基于LLM对您的文档进行评估。它会自动生成测试数据集（包含问题和答案），并使用不同参数对该文档进行评分，最终生成评估结果。该功能基于[Azure Durable Functions](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fazure-functions\u002Fdurable\u002Fdurable-functions-overview?tabs=csharp-inproc)构建，并采用[Function Chaining](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fazure-functions\u002Fdurable\u002Fdurable-functions-sequence?tabs=csharp)模式。要为现有部署启用评估功能，您需要在Azure Web App中添加`BLOB_EVALUATOR_CONTAINER_NAME`（确保在存储账户中创建相同的容器名称）和`RUNEVALUATION_URL`（持久化函数部署的URL）配置。在Azure function部署中，还需设置`AzureWebJobsFeatureFlags`（值为EnableWorkerIndexing）和`OpenAiEvaluatorContainer`设置。\n* 2023年7月5日 - 添加了删除会话的功能。该功能处于[预览](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fcosmos-db\u002Fnosql\u002Fhow-to-delete-by-partition-key?tabs=python-example)阶段，您需要在自己的CosmosDB账户上启用该功能。添加了一个简单的try\u002Fcatch块，以防您尚未启用\u002F部署CosmosDB时继续实施ChatGPT。\n* 2023年7月4日 - GPT3.5\u002FChatGpt界面首次实现了“会话”的存储。会话和消息存储\u002F检索于CosmosDb。请确保已提供CosmosDb服务或新建一个（用于现有部署）。您需要在Azure Functions App和Web App中分别添加`CosmosEndpoint`、`CosmosKey`、`CosmosDatabase`和`CosmosContainer`设置。\n* 2023年6月25日 - 笔记本[展示](#qa-llm-evaluation)了系统性地评估答案质量的方法（自动生成问题和评估链），支持LLM QA设置（分块大小、重叠、嵌入技术）。更多信息请参阅[评估者](.\u002FWorkshop\u002F99_Evaluator.ipynb)笔记本。\n* 2023年6月18日 - 添加了支持知识库管理的管理页面。\n* 2023年6月17日 - 为“提问”功能添加了“问题列表”按钮，用于显示知识库中的所有问题。要启用“问题列表”按钮功能，需在Azure App Service中添加三个属性：`SEARCHSERVICE`和`KBINDEXNAME`（默认值为aoaikb）。\n* 2023年6月16日 - 添加了使用Azure Cognitive Search作为向量存储来存储[缓存知识库](#qa-over-your-data-with-cache)的功能。不在KB中的问题会被发送到LLM模型以通过OAI寻找答案，否则将从缓存的数据存储中返回答案。需要在Azure Function app中添加新属性`KbIndexName`。作为研讨会的一部分，添加了测试该功能的笔记本。待办事项：添加从聊天界面将问题添加到KB的功能（并使其基于会话）。不久还将添加一项从LLM重新生成答案的功能（而非使用缓存的答案）。\n* 2023年6月7日 - 在开发者工具中添加了OpenAI Playground，并初步构建了CoPilot（目前以笔记本形式呈现，但最终将作为CoPilot功能推出）。添加了实时语音分析用例的脚本、录音和示例。更多内容即将推出。\n* 2023年5月27日 - 添加了研讨会内容，以笔记本形式呈现，可用于学习和执行各种场景。这些笔记本可在[研讨会](Workshop)文件夹中找到。关于研讨会内容的详细信息可在[READMEWORKSHOP.md](READMEWORKSHOP.md)中查阅。\n* 2023年5月26日 - 添加了摘要功能，可通过stuff、mapreduce或refine摘要等方式对文档进行摘要。要使用此功能（在现有部署中），请确保在Function app中添加`OpenAiSummaryContainer`配置，并在Azure App Service中添加`BLOB_SUMMARY_CONTAINER_NAME`配置（确保输入的值与Azure存储中的容器名称一致，并已创建该容器）。此外，您还需在Azure App Service中添加`PROCESSSUMMARY_URL`配置（确保输入的值与Azure Function URL一致）。\n* 2023年5月24日 - 添加了上传CSV文件和CSV Agent的功能，用于解答\u002F聊天关于表格数据的问题。智能Agent也支持解答关于CSV数据的问题。\n* 2023年5月22日 - 初始版本的“智能Agent”，让您能够灵活地与解决方案中上传的所有文档进行对话。它还允许您与SQL数据库场景进行对话。随着更多功能的添加，该Agent将继续扩展其能力（例如处理CSV\u002FExcel或表格数据）。\n* 2023年5月21日 - 添加了开发者工具板块 - 实验性代码转换和Prompt guru。\n* 2023年5月17日 - 将edgar源改为认知搜索向量存储，而非Redis。\n* 2023年5月15日 - 添加了将“认知搜索”用作向量存储来存储索引的选项。Azure认知搜索提供纯向量搜索和混合检索——以及由必应驱动的复杂重排序系统，所有功能集成在一个解决方案中。[注册](https:\u002F\u002Faka.ms\u002FVectorSearchSignUp)。支持上传WORD文档。\n* 2023年5月10日 - 添加了关于如何对文档进行分块的选项。如果您想使用表单识别器，请确保已创建表单识别资源，并配置适当的应用设置`FormRecognizerKey`和`FormRecognizerEndPoint`。\n* 2023年5月7日 - 提供了选择使用Azure OpenAI或OpenAI的选项。对于OpenAI，请确保在Azure Functions设置中拥有`OpenAiApiKey`。对于Azure OpenAI，您需要`OpenAiKey`、`OpenAiService`和`OpenAiEndPoint`等端点设置。您也可以从开发者设置页面选择该选项，用于聊天\u002F提问\u002FSQL NLP\u002F语音分析等功能。\n* 2023年5月3日 - 上传功能需要密码，并引入了从索引管理开始的管理页面。\n* 2023年4月30日 - 添加了任务Agent功能的初始版本。自主Agent是专为长期运行设计的Agent。您为它们设定一个或多个长期目标，它们便会独立地朝着这些目标执行。这些应用结合了工具使用和长期记忆。初始功能实现了[Baby AGI](https:\u002F\u002Fgithub.com\u002Fyoheinakajima\u002Fbabyagi)及其执行工具。\n* 2023年4月29日 - 使用S3、AWS Lambda Function和Azure Data Factory实现了AWS S3流程集成（自动化部署尚未可用，脚本可在\u002FDeployment\u002Faws文件夹中找到）。\n* 2023年4月28日 - 修复了QA和聊天中的错误、引用和后续问题。提示稍显严格，以限制从文档中回复。\n* 2023年4月25日 - Power Virtual Agent的初始版本。\n* 2023年4月21日 - 在SQL NLP中添加了SQL查询和SQL数据标签，并修复了聊天和提问功能中的引用和后续问题。\n* 2023年4月17日 - 为聊天和提问功能提供了实时语音分析、语音转文本和文本转语音功能。（您可以在开发者设置中配置文本转语音功能。您需要Azure Speech Services）\n* 2023年4月13日 - 添加新功能，支持使用[向量QA Agent](https:\u002F\u002Fpython.langchain.com\u002Fen\u002Flatest\u002Fmodules\u002Fagents\u002Ftoolkits\u002Fexamples\u002Fvectorstore.html)就多份文档提问。\n* 2023年4月8日 - 向您的SQL提问 - 使用[SQL数据库Agent](https:\u002F\u002Fpython.langchain.com\u002Fen\u002Flatest\u002Fmodules\u002Fagents\u002Ftoolkits\u002Fexamples\u002Fsql_database.html)或使用[SQL数据库链](https:\u002F\u002Fpython.langchain.com\u002Fen\u002Flatest\u002Fmodules\u002Fchains\u002Fexamples\u002Fsqlite.html)。\n* 2023年3月29日 - 自动化部署脚本。\n* 2023年3月23日 - 添加认知搜索作为存储文档的选项。\n* 2023年3月19日 - 添加GPT3聊天实现。\n* 2023年3月18日 - 用于生成文档摘要的API及示例QA。\n* 2023年3月17日\n  * 支持上传多份文档\n  * 错误修复 - Redis向量存储实现\n* 2023年3月16日 - 初始发布，向您的数据提问并与您的数据聊天。\n\n## 测试网站\n\n[基于您的数据进行聊天和提问](https:\u002F\u002Fdataaipdfchat.azurewebsites.net\u002F)\n\n## 功能特性\n\n[功能列表](Features.md)\n\n## 架构\n\n![架构](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakshata29_entaoai_readme_0edb8d4c1bec.png)\n\n## Azure 架构\n\n![Azure 服务](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakshata29_entaoai_readme_452701b66624.png)\n\n## 带缓存的数据问答\n\n![问答缓存](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakshata29_entaoai_readme_26aaf11fd4b9.png)\n\n## QA LLM 评估\n\n![QA LLM 评估](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakshata29_entaoai_readme_403944635680.png)\n\n## 入门指南\n\n[入门指南](GettingStarted.md)\n\n## 配置\n\n[应用程序与函数应用配置](Configuration.md)\n\n## 参考资料\n\n* [用 ChatGPT 彻底革新企业数据：结合 Azure OpenAI 和认知搜索的下一代应用](https:\u002F\u002Faka.ms\u002Fentgptsearchblog)\n* [Azure 认知搜索](https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fsearch\u002Fsearch-what-is-azure-search)\n* [Azure OpenAI 服务](https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fcognitive-services\u002Fopenai\u002Foverview)\n* [Redis Search](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fazure-cache-for-redis\u002Fcache-redis-modules#redisearch)\n* [Pinecone](https:\u002F\u002Fwww.pinecone.io\u002Flearn\u002Fpinecone-v2\u002F)\n* [认知搜索向量存储](https:\u002F\u002Faka.ms\u002FVectorSearchSignUp)\n\n## 贡献\n\n我们欢迎各种形式的贡献，无论是新增功能、更新现有功能，还是改进文档。请创建一个拉取请求，我们将对其进行审查并合并。\n\n### 注\n\n>改编自以下仓库：[OpenAI-CogSearch](https:\u002F\u002Fgithub.com\u002FAzure-Samples\u002Fazure-search-openai-demo\u002F)、[呼叫中心分析](https:\u002F\u002Fgithub.com\u002Famulchapla\u002FAI-Powered-Call-Center-Intelligence)、[自动评估器](https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Fauto-evaluator)以及[Edgar 爬虫](https:\u002F\u002Fgithub.com\u002Fnlpaueb\u002Fedgar-crawler)","# entaoai 快速上手指南\n\nentaoai 是一个基于大语言模型（LLM）的企业级数据对话工具。它利用 Azure OpenAI Service 访问 ChatGPT 模型，并结合向量数据库（如 Pinecone、Redis）或 Azure Cognitive Search 实现数据的索引与检索，让用户能够针对自有数据进行类似 ChatGPT 的问答和聊天体验。\n\n## 环境准备\n\n在开始之前，请确保满足以下系统要求和前置依赖：\n\n*   **操作系统**: Linux, macOS 或 Windows (推荐 Linux 环境部署)\n*   **Python**: 版本 3.8 或更高 (建议 3.10+)\n*   **云服务平台**: \n    *   **Azure 订阅**: 必须拥有有效的 Azure 订阅。\n    *   **Azure OpenAI Service**: 已部署并获取密钥（支持 `gpt-35-turbo` 等模型）。\n    *   **数据存储与检索**: 需准备以下任一服务：\n        *   Azure Cognitive Search\n        *   Pinecone (向量数据库)\n        *   Redis (向量数据库)\n*   **开发工具**:\n    *   Git\n    *   Azure CLI (用于资源管理和部署)\n    *   Python 包管理工具 (pip)\n\n> **注意**: 本项目深度依赖 Azure 生态，目前暂无官方提供的中国国内镜像源或加速方案。如遇网络问题，请配置合适的代理环境以确保能访问 Azure API 和 PyPI。\n\n## 安装步骤\n\n### 1. 克隆代码仓库\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fakshata29\u002Fentaoai.git\ncd entaoai\n```\n\n### 2. 创建虚拟环境并安装依赖\n\n建议使用 Python 虚拟环境来隔离依赖：\n\n```bash\npython -m venv venv\nsource venv\u002Fbin\u002Factivate  # Windows 用户请使用: venv\\Scripts\\activate\n\npip install -r requirements.txt\n```\n\n### 3. 配置环境变量\n\n项目核心功能依赖于 Azure 服务的配置。你需要在 Azure App Service (WebApp) 或本地 `.env` 文件中配置以下关键变量（具体取决于你的部署方式）：\n\n*   **OpenAI 配置**:\n    *   `OpenAiEndPoint`: Azure OpenAI 的端点 URL (若使用 APIM 则为 API Gateway URL)。\n    *   `OpenAiKey`: Azure OpenAI 的密钥 (若使用 APIM 则为 Product Key)。\n    *   `OpenAiChat`: Chat 模型部署名称 (例如: `gpt-35-turbo`)。\n    *   `OpenAiEmbedding`: Embedding 模型部署名称。\n*   **向量存储配置** (根据选择的存储类型填写其一):\n    *   **Pinecone**: `PineconeEnv`, `PineconeIndex`, `PineconeKey`\n    *   **Redis**: `RedisAddress`, `RedisPassword`, `RedisPort`\n    *   **Azure Cognitive Search**: 需在代码或连接字符串中配置相应的 Search Service 信息。\n*   **应用配置**:\n    *   `ApiType`: 选择 API 类型 (`AzureFunctions` 或 `PromptFlow`)。\n\n> **提示**: 具体的配置项请参考项目根目录下的示例配置文件或 Azure Portal 中的应用设置页面。自 2023-08-10 更新后，主要使用 `OpenAiEndPoint` 替代旧的 `OpenAiService` 配置。\n\n### 4. 初始化与部署\n\n如果是首次运行，需要上传数据以建立索引。可以通过 Web 界面的 \"Upload\" 功能上传文档（支持 PDF, Markdown zip 等），或者通过命令行\u002FNotebook 进行预处理。\n\n若部署到 Azure Web App，可使用 Azure CLI：\n\n```bash\naz webapp up --name \u003Cyour-app-name> --runtime \"PYTHON|3.10\"\n```\n\n*(注：具体部署命令需根据实际架构调整，上述为通用参考)*\n\n## 基本使用\n\n完成安装和配置后，你可以通过以下方式开始使用：\n\n### 方式一：通过 Web 界面交互\n\n启动应用后（本地运行或访问部署后的 Azure Web App URL），你将看到主界面。\n\n1.  **上传数据**: 点击界面上的 **Upload** 标签页，上传你的企业文档（如 PDF、TXT 或包含 Markdown 的 ZIP 文件）。系统会自动进行分块（Chunking）并向量化存储。\n2.  **开始对话**:\n    *   切换到 **Chat** 标签页：进行基于上下文的流式对话。\n    *   切换到 **QnA** 标签页：针对文档内容进行精准的问答检索。\n3.  **高级功能**:\n    *   在设置中可调整搜索类型（混合搜索 Hybrid、向量相似度 Similarity 等）。\n    *   管理员可通过 **Admin** 页面管理会话或删除索引。\n\n### 方式二：通过 Prompt Flow 评估 (可选)\n\n如果你需要评估 RAG 系统的回答质量，可以使用内置的 Prompt Flow 评估功能。\n\n1.  准备测试数据集（格式参考 `.\u002Fapi\u002FPromptFlow\u002FQuestionAnswering\u002Fbert.jsonl`）。\n2.  在 Azure Machine Learning 中运行评估流程，支持以下指标：\n    *   **Groundedness**: 衡量回答是否基于上下文依据。\n    *   **Coherence**: 衡量回答语句的通顺度和逻辑性 (1-5 分)。\n    *   **Similarity**: 衡量预测回答与真实答案的相似度 (1-5 分)。\n    *   **F1 Score**: 基于词元的精确率与召回率调和平均数。\n\n### 简单代码示例 (本地调试)\n\n若需通过 Python 脚本直接调用后端逻辑（假设已配置好环境变量）：\n\n```python\n# 伪代码示例，具体导入路径请参考 api 目录结构\nfrom api.core import initialize_chain, ask_question\n\n# 初始化检索链\nchain = initialize_chain(\n    openai_endpoint=\"YOUR_ENDPOINT\",\n    openai_key=\"YOUR_KEY\",\n    vector_store_type=\"pinecone\" # 或 \"redis\", \"cognitive_search\"\n)\n\n# 提问\nquery = \"这份财报中的净利润是多少？\"\nresponse = ask_question(chain, query)\n\nprint(response)\n```\n\n现在，你已经成功搭建并使用了 entaoai，可以开始探索基于私有数据的 LLM 应用了。","某大型制造企业的技术支援团队每天需要处理大量来自内部维修手册、故障日志和工程图纸的咨询请求。\n\n### 没有 entaoai 时\n- 工程师必须手动在多个分散的文件服务器中搜索关键词，耗时且容易遗漏关键信息。\n- 面对非结构化的 PDF 文档和图片，传统搜索无法理解语义，导致“查得到文件却找不到答案”。\n- 新员工培训周期长，因为缺乏一个能即时回答具体技术问题的智能助手，只能依赖老员工口传心授。\n- 每次更新技术文档后，全员通知成本高，且难以确保每个人都知道最新变更内容。\n- 缺乏对问答质量的量化评估，无法判断自动回复是否准确可靠，存在误导风险。\n\n### 使用 entaoai 后\n- 工程师只需自然语言提问，entaoai 即可基于上传的企业数据快速定位并生成精准答案，效率提升 80%。\n- 借助多模态 RAG 技术，entaoai 能解析图文混合内容，直接从图表或扫描版手册中提取关键参数作答。\n- 新员工可通过对话式交互随时获取标准操作指引，大幅缩短上手时间，降低对资深人员的依赖。\n- 文档一旦上传至 entaoai，系统自动索引并同步更新知识库，确保所有用户始终访问最新版本。\n- 内置的 GPT 辅助评估模块（如 Groundness、Coherence）可自动打分，帮助团队持续优化回答质量与安全性。\n\nentaoai 让企业私有数据真正“活”起来，将静态文档转化为可对话、可信赖的智能知识引擎。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakshata29_entaoai_6e57eeb6.png","akshata29","Ashish Talati","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fakshata29_d2c4397e.png",null,"Microsoft","Chicago","ashish.talati@gmail.com","https:\u002F\u002Fgithub.com\u002Fakshata29",[82,86,90,94,98,101,105],{"name":83,"color":84,"percentage":85},"TypeScript","#3178c6",56.2,{"name":87,"color":88,"percentage":89},"TSQL","#e38c00",31.3,{"name":91,"color":92,"percentage":93},"Python","#3572A5",11.2,{"name":95,"color":96,"percentage":97},"Bicep","#519aba",0.6,{"name":99,"color":100,"percentage":97},"CSS","#663399",{"name":102,"color":103,"percentage":104},"Dockerfile","#384d54",0,{"name":106,"color":107,"percentage":104},"HTML","#e34c26",866,245,"2026-04-16T08:00:14","MIT",4,"未说明",{"notes":115,"python":116,"dependencies":117},"该工具主要基于 Azure 云服务（Azure OpenAI Service, Azure Cognitive Search, Azure Functions, Azure ML Prompt Flow）运行，而非本地部署模型。因此对本地 GPU 和内存无特殊高要求，但需要配置相应的 Azure 资源及 API 密钥。支持的数据索引存储包括 Pinecone、Redis 或 Azure Cognitive Search。部分功能（如函数调用）需要特定的 API 版本（2023-07-01-preview）。","3.x (需兼容 OpenAI > 1.0 及最新 LangChain)",[118,119,120,121,122],"openai>1.0","langchain","azure-search-documents>=11.4.0b9","azure-identity","promptflow",[14,36],[125,126,127,128,129,130,131,132,133,134,135,136,119,137],"azure","azureopenai","chatgpt","cognitive-search","openai","pinecone","redis-search","vector-store","azure-functions","azure-webapp","gpt-3","gpt-35-turbo","azure-openai","2026-03-27T02:49:30.150509","2026-04-20T16:48:56.199808",[141,146,151,156,161,166],{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},45114,"部署时遇到 'text-davinci-003' 模型不支持的错误怎么办？","这是因为该模型已被弃用。解决方法是修改部署模板（azuredeploy.json），移除对 'text-davinci-003' (Davinci) 模型的引用，仅保留 gpt-3.5-turbo、embedding 和 3.5-turbo-16k 模型。同时需要重构代码中所有使用 Davinci 的部分。具体操作是在 azuredeploy.json 中删除包含 \"name\": \"text-davinci-003\" 的部署资源块。","https:\u002F\u002Fgithub.com\u002Fakshata29\u002Fentaoai\u002Fissues\u002F30",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},45115,".env 配置文件中的 OpenAiKey 和 OpenAiApiKey 有什么区别？","这两个变量用于区分不同的 LLM 提供商：\n1. OpenAiKey：当你选择 Azure OpenAI 作为大语言模型时使用。\n2. OpenAiApiKey：当你选择标准的 OpenAI (openai.com) 作为大语言模型时使用。\n未来项目计划支持 Hugging Face 和其他开源模型。","https:\u002F\u002Fgithub.com\u002Fakshata29\u002Fentaoai\u002Fissues\u002F40",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},45116,"如何禁用 Web 应用中的身份验证提示（Authentication Not Configured）？","如果需要禁用身份验证功能，需要修改前端核心代码。在 ChatGpt.tsx, OneShot.tsx 和 Pib.tsx 文件中，找到 useEffect 方法，注释掉以下判断逻辑：\n\nif (window.location.hostname != \"localhost\") {\n    getUserInfoList();\n    setShowAuthMessage(true)\n} else\n    setShowAuthMessage(false)\n\n此外，也可以参考微软文档配置 Azure App Service 的身份验证以允许 AAD 用户访问。","https:\u002F\u002Fgithub.com\u002Fakshata29\u002Fentaoai\u002Fissues\u002F31",{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},45117,"PDF 上传成功但在下拉列表中看不到文档，且未创建索引，如何解决？","这通常是因为文件缺少必要的元数据（Metadata）。虽然文件已上传到存储容器，但如果缺少 \"Qa\" 和 \"Summary\" 元数据，文档不会显示在下拉列表中。\n临时解决方法：\n1. 进入存储容器找到上传的文件。\n2. 手动为该文件添加元数据，将 \"qa\" 和 \"summary\" 的值设为空字符串（\"blank\"）。\n3. 刷新页面即可看到文档。\n长期方案是等待官方修复自动添加这些元数据的 Bug。","https:\u002F\u002Fgithub.com\u002Fakshata29\u002Fentaoai\u002Fissues\u002F11",{"id":162,"question_zh":163,"answer_zh":164,"source_url":165},45118,"使用 azd up 部署时资源创建不全或报错 'Parameter already exists' 怎么办？","这通常是由于部署模板（如 azuredeploy.json 或 main.bicep）中存在重复的资源定义或参数导致的。\n常见原因及解决步骤：\n1. 检查模板文件中是否有重复的参数定义（例如 SQLVISUAL_URL 被定义了两次）。\n2. 删除重复的代码块。\n3. 如果之前部署失败导致资源残留，可能需要手动清理资源组或使用不同的部署名称重试，以避免参数冲突错误。","https:\u002F\u002Fgithub.com\u002Fakshata29\u002Fentaoai\u002Fissues\u002F34",{"id":167,"question_zh":168,"answer_zh":169,"source_url":170},45119,"前端没有自动部署，是否需要手动构建 React 前端？","如果使用 Azure CLI 直接部署解决方案但前端未部署，通常是因为自动化流程未涵盖前端构建步骤。\n解决方法：\n1. 可以按照文档描述手动构建 React 前端并部署到 Azure。\n2. 或者，维护者建议可以下载包含 API 和 App 的 Docker 镜像，在本地运行以绕过部分部署问题。","https:\u002F\u002Fgithub.com\u002Fakshata29\u002Fentaoai\u002Fissues\u002F5",[]]