news 2026/5/9 15:44:50

基于LLM与向量数据库的智能消息代理系统设计与实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于LLM与向量数据库的智能消息代理系统设计与实现

1. 项目概述:一个能帮你“回消息”的AI秘书

最近在GitHub上看到一个挺有意思的项目,叫razbakov/ai-secretary。光看名字,你可能会觉得这又是一个普通的聊天机器人或者日程管理工具。但实际深入了解一下,你会发现它的定位非常精准且实用:一个能帮你自动处理即时通讯消息的AI助手。想象一下这样的场景:你正在开会、专注写代码,或者只是单纯不想被各种群聊、私信打扰,但又担心错过重要信息或显得不礼貌。这时候,如果有一个“数字分身”能替你阅读消息、理解意图,并生成得体、合适的回复,那该多省心。

这个项目正是瞄准了这个痛点。它不是一个试图解决所有问题的通用AI,而是一个聚焦于“消息代理”场景的专用工具。其核心逻辑是,通过大语言模型(LLM)的能力,实时监控你指定的聊天渠道(比如Telegram),分析收到的消息内容,然后模仿你的口吻和风格,自动生成并发送回复。这听起来有点像科幻电影里的场景,但得益于当前开源LLM生态的成熟,实现这样一个“AI秘书”的技术门槛已经大大降低。razbakov/ai-secretary项目就提供了一个相对完整的实现方案,涵盖了从消息接入、AI推理到回复发送的全流程。

对于开发者、自由职业者,或者任何消息负载较重但又需要保持在线响应的人来说,这个项目极具吸引力。它不仅仅是“自动回复”,更是“智能上下文回复”。这意味着你的AI秘书能记住对话历史,理解复杂的提问,甚至根据你的预设指令(比如“我在开会,稍后回复”)来灵活应对。接下来,我们就从技术选型、实现细节到实操部署,完整拆解如何构建和用好这样一个属于你自己的AI秘书。

2. 核心架构与设计思路拆解

要构建一个稳定可用的AI秘书,不能只靠调用一下API那么简单。我们需要一个健壮的架构来处理异步事件、管理对话状态、保障服务稳定性。razbakov/ai-secretary项目的设计思路清晰地反映了这些考量。

2.1 为什么选择“事件驱动+异步处理”模型?

即时通讯消息的到来是随机的、高并发的。采用传统同步阻塞的处理方式,当AI生成回复较慢时,很容易阻塞整个系统,导致消息积压甚至丢失。因此,该项目采用了事件驱动架构。具体来说,它通常利用消息队列(如Redis的Pub/Sub,或RabbitMQ)作为中枢。

工作流程如下

  1. 消息监听器:一个常驻进程负责监听Telegram(或其他平台)的API。一旦收到新消息,它并不立即处理,而是将消息封装成一个事件(Event),发布到指定的消息队列主题(Topic)中。这样做解耦了接收和处理,即使AI处理模块暂时不可用,消息也不会丢失,而是暂存在队列里。
  2. AI处理Worker:一个或多个独立的Worker进程订阅消息队列。它们从队列中取出事件,调用LLM生成回复。这个过程是异步的,Worker可以水平扩展,多个Worker同时处理不同对话,极大地提升了系统的吞吐量。
  3. 回复发送器:Worker生成回复后,再通过消息队列或直接调用发送API,将回复内容送出去。整个流程中,各个组件各司其职,通过队列通信,系统的容错性和可扩展性都得到了保障。

这种设计对于个人使用可能有点“杀鸡用牛刀”,但如果你想将它用于一个团队,或者处理非常高频的消息,这种架构的优势就非常明显了。它也是现代云原生应用的标准设计模式。

2.2 对话上下文管理的核心:向量数据库与摘要技术

AI要做出连贯、准确的回复,必须“记住”之前的对话。但LLM的上下文长度是有限的(比如4K、8K、16K tokens),不可能无限制地把所有历史记录都塞进去。如何高效管理长对话上下文,是这个项目的关键技术点之一。

常见的方案有两种,这个项目很可能采用了混合策略:

  1. 向量检索(Vector Search):将所有历史对话,以“消息对”(用户说-AI答)为单位,通过嵌入模型(Embedding Model)转换成向量,存储到向量数据库(如Chroma、Weaviate或Qdrant)中。当新消息到来时,将其也转换为向量,然后在向量数据库中搜索与之最相关的若干条历史对话。这种方式能精准召回与当前话题最相关的历史片段,即使它们发生在很久以前。
  2. 滚动摘要(Rolling Summary):随着对话进行,定期(比如每10轮对话)用LLM对之前的对话内容生成一个简短的摘要。在新的对话轮次中,不再传入全部原始历史,而是传入“之前的摘要 + 最近几轮原始对话”。这样既能保持对话主线的连贯性,又极大地节省了上下文窗口。

在实际实现中,一个高效的策略是“向量检索提供细节,滚动摘要维持主线”。例如,系统维护一个不断更新的对话摘要。对于每个新问题,先用向量数据库检索出与问题高度相关的具体历史消息对(提供细节和事实),然后将“整体摘要 + 检索到的相关片段 + 最新问题”一起提交给LLM生成回复。这样既突破了上下文长度限制,又保证了回复的准确性和相关性。

2.3 工具链选型:平衡性能、成本与易用性

项目的技术栈选择直接决定了部署难度和运行成本。

  • LLM核心:项目可能支持多种后端。开源模型(如Llama 3、Qwen、DeepSeek)部署在本地或私有云,数据隐私性好,长期成本可控,但对硬件有要求。商用API(如OpenAI GPT-4o、Claude、DeepSeek)则免去了部署烦恼,按需付费,初期启动快,但需考虑网络延迟和长期成本。对于个人秘书场景,7B-14B参数量的量化版开源模型,在消费级显卡上已经能取得非常不错的效果。
  • 向量数据库:轻量级选择如Chroma,它可以直接嵌入到Python应用中,无需单独部署服务器,非常适合个人项目。如果对性能和规模有更高要求,可以考虑QdrantWeaviate,它们提供了更丰富的查询功能和更好的可扩展性。
  • 消息队列与框架:对于Python技术栈,Celery+Redis是处理异步任务的黄金组合,成熟稳定。如果追求更现代的异步体验,可以使用ARQ(基于Redis的异步任务队列)或Dramatiq。项目本身可能封装了这些细节,让开发者通过配置即可选择。
  • 应用框架:为了提供配置界面和监控能力,项目很可能会用一个轻量级Web框架(如FastAPI)来暴露管理API,并用简单的前端(如Vue/React)或直接使用Gradio/Streamlit快速搭建一个配置面板,用于设置AI人格、管理黑名单等。

注意:工具链的选择没有绝对的对错,关键是要匹配你的使用场景。如果你只是想在个人电脑上跑起来玩一玩,那么“Ollama(运行LLM)+ Chroma(向量库)+ 项目自带脚本”是最简单的路径。如果你希望它7x24小时稳定运行,并能从外部访问,那么考虑Docker容器化部署,并选择更稳健的数据库和队列服务是必要的。

3. 核心功能模块深度解析

一个AI秘书不仅仅要会“回话”,更要回得“聪明”、“得体”。这就需要一系列功能模块来塑造它的行为。

3.1 人格设定与回复风格定制

这是让你的AI秘书区别于通用聊天机器人的灵魂所在。项目应允许你通过一个“系统提示词”(System Prompt)来定义AI的角色。

一个基础的提示词模板可能是这样的:

你是一个高效、礼貌的AI秘书,负责帮我处理即时消息。你的名字叫[你的秘书名]。你的核心任务是筛选信息并代为回复。 【我的背景】我是一名[你的职业,如软件工程师/设计师]。 【回复风格】语气专业且略带随意,用词简洁明了,避免冗长。可以适当使用表情符号(如😊、👍),但不要过度。 【核心原则】: 1. 对于明确的问题,如果信息充足,直接给出清晰答案。 2. 对于模糊或需要我亲自处理的问题(如涉及重要决策、金钱、隐私),统一回复:“此事我已记录,会尽快转达给[我的名字],他稍后亲自回复您。” 3. 对于问候、寒暄(如“在吗?”“早上好”),友好回应即可。 4. 绝对不要声称自己是一个AI,如果被问及,就说“我是[我的名字]的助理”。 当前对话历史摘要:[此处插入滚动摘要] 相关历史对话片段:[此处插入向量检索结果]

通过精细调整这个提示词,你可以让AI秘书模仿你的说话习惯,甚至处理特定领域的专业问题。例如,为程序员定制的秘书,可以教它识别并简要回答关于代码错误的问题;为商务人士定制的秘书,则可以更好地安排会议邀约。

3.2 优先级过滤与智能分流机制

不是所有消息都值得AI秘书立刻响应。一个良好的过滤机制至关重要。

  • 关键词黑/白名单:可以设置黑名单词汇(如“急!!!”“救命”“投诉”),一旦消息中出现这些词,AI秘书将不回复,而是通过其他方式(如邮件、短信)给你发送高优先级警报。反之,白名单联系人(如你的家人、合伙人)的消息可以优先处理。
  • 意图识别与分类:利用LLM本身或一个小型文本分类模型,对消息进行实时意图分类。例如,分为:“问候”、“简单问答”、“事务请求(需处理)”、“紧急/重要”、“垃圾广告”。对于“简单问答”,AI直接回复;“事务请求”则回复“已记录,将转达”;“紧急/重要”则触发警报。
  • 静默学习与反馈循环:初期,AI的回复可以先设置为“仅生成,不发送”,由你人工审核后再发出。你可以对它的回复进行“点赞”或“点踩”。这些反馈数据可以被记录并用于微调模型,或者简单一点,作为“好回复/坏回复”的样本存入向量数据库,供后续生成时参考,让AI秘书越来越懂你。

3.3 长期记忆与用户画像构建

为了让AI秘书在长期互动中更“懂”你和你的联系人,需要建立简单的记忆系统。

  • 联系人专属记忆:为每个频繁联系的对话方(通过用户ID识别)维护一个独立的记忆片段。例如,当AI从对话中了解到“张三是你的大学同学,目前在杭州做产品经理,喜欢足球”,可以将这些信息结构化后存储。下次张三再来聊天时,这些信息可以作为上下文注入,让回复更具个性化(如“最近杭州天气如何?”“昨晚看球了吗?”)。
  • 项目/事务状态跟踪:如果AI秘书协助处理一些简单事务(如“帮我问下老王会议时间定了没”),它需要有能力维护一个极简的内部状态表。这可以通过让LLM输出结构化的JSON数据来实现,然后由程序解析并存储。例如,{"action": "ask_meeting_time", "target": "老王", "status": "pending"}。虽然复杂的工作流不适合AI全自动处理,但跟踪这类简单待办事项的状态是完全可行的。

4. 从零开始的实操部署指南

理论说了这么多,我们动手把它跑起来。这里以在Linux服务器(或Mac/Windows WSL2环境)上使用Docker部署为例,这是最清晰、环境隔离最好的方式。

4.1 基础环境准备与配置

首先,确保你的机器已经安装了Docker和Docker Compose。然后,获取项目代码。

# 1. 克隆项目仓库(假设项目托管在GitHub) git clone https://github.com/razbakov/ai-secretary.git cd ai-secretary # 2. 查看项目结构,通常会有docker-compose.yml和配置文件示例 ls -la

接下来,配置核心文件。项目通常会提供一个环境变量配置文件模板,如.env.example

# 3. 复制模板文件并创建自己的配置 cp .env.example .env # 使用文本编辑器(如nano或vim)编辑 .env 文件 nano .env

关键的配置项通常包括:

# LLM 配置 # 如果使用OpenAI API LLM_PROVIDER=openai OPENAI_API_KEY=sk-your-api-key-here OPENAI_MODEL=gpt-4o-mini # 或 gpt-3.5-turbo # 如果使用本地Ollama(假设你在同一网络或本机运行了Ollama) # LLM_PROVIDER=ollama # OLLAMA_BASE_URL=http://host.docker.internal:11434 # Mac/Windows Docker Desktop # OLLAMA_BASE_URL=http://172.17.0.1:11434 # Linux Docker 桥接网络 # OLLAMA_MODEL=llama3.1:8b # Telegram Bot 配置 TELEGRAM_BOT_TOKEN=YOUR_BOT_TOKEN_FROM_BOTFATHER # 可选:设置允许使用的用户ID,增强安全性 ALLOWED_USER_IDS=123456789,987654321 # 向量数据库配置(以Chroma为例,内嵌模式无需额外配置) # 如果使用Qdrant # VECTOR_DB_PROVIDER=qdrant # QDRANT_URL=http://qdrant:6333 # QDRANT_COLLECTION_NAME=ai_secretary_memories # 消息队列配置(以Redis为例) REDIS_URL=redis://redis:6379/0 # AI秘书人格设定(可在此设置,或在Web界面设置) DEFAULT_SYSTEM_PROMPT=你是一个乐于助人、语气友好的AI助理...

关于Telegram Bot Token的获取

  1. 在Telegram中搜索@BotFather
  2. 发送/newbot指令,按提示设置名字和用户名。
  3. 创建成功后,BotFather会给你一个Token,形如1234567890:ABCdefGHIjklMnOpQRsTUVwxyZ。将它填入TELEGRAM_BOT_TOKEN
  4. 找到你刚创建的Bot,给它发送/start消息激活。

4.2 使用Docker Compose一键启动

配置好.env文件后,使用Docker Compose启动所有服务是最简单的方式。项目的docker-compose.yml文件可能已经定义好了所有服务。

# 4. 启动所有服务(在后台运行) docker-compose up -d # 5. 查看服务运行状态和日志 docker-compose ps docker-compose logs -f ai-secretary-core # 查看核心服务日志

如果一切顺利,你应该能看到服务启动成功的日志。现在,你的AI秘书后端已经在运行了。它可能还包含一个管理界面,通常可以通过http://你的服务器IP:8080访问(具体端口看docker-compose.yml暴露的端口)。

4.3 基础功能验证与测试

部署完成后,需要进行基础测试。

  1. 连接测试:在Telegram中给你的Bot发送一条消息,比如“你好”。观察服务器日志 (docker-compose logs -f ai-secretary-core),应该能看到收到消息和尝试处理的消息。
  2. 回复测试:如果LLM配置正确,你的Bot应该会回复你。首次回复可能会比较慢,因为需要加载模型。
  3. 管理界面:访问管理界面(如果提供),检查各项配置是否生效,例如系统提示词、对话历史记录等。
  4. 记忆测试:进行一个多轮对话。例如:
    • 你:“我喜欢吃苹果。”
    • AI:“好的,已记录您喜欢吃苹果。”
    • 你:“我刚才说我喜欢吃什么?”
    • 一个具备良好记忆功能的AI应该能回答“苹果”。这测试了向量检索或上下文管理是否正常工作。

实操心得:在首次部署时,强烈建议将LLM的生成温度(Temperature)参数调高(比如0.8-1.0),并开启流式输出(如果支持)。这样在测试时,你可以看到AI“思考”的过程,更容易调试提示词和发现逻辑问题。等一切稳定后,再将温度调低(如0.2-0.5)以获得更稳定、可靠的回复。

5. 高级配置与个性化调优

基础运行只是第一步,要让AI秘书真正好用,必须进行精细调优。

5.1 提示词工程实战技巧

系统提示词是AI秘书的“大脑”。编写时要注意:

  • 角色扮演要具体:不要只说“你是一个助手”,要说“你是我在科技公司的技术助理,擅长用比喻解释复杂技术概念”。
  • 指令要清晰、可操作:使用“如果-那么”句式。例如:“如果用户询问会议时间,那么请查询日历系统(模拟)并告知;如果没有相关信息,那么回复‘请稍等,我为您确认一下’。”
  • 提供回复范例:在提示词中直接给出几个你期望的回复例子,效果立竿见影。例如:“当别人说‘谢谢’时,你应该回复‘不客气,这是我应该做的😊’。”
  • 设置边界:明确告诉AI什么不能做。例如:“绝对禁止代替我做出任何承诺、同意付款或透露我的个人隐私信息(如住址、身份证号)。”
  • 迭代优化:将AI出错的对话记录下了,分析原因,然后反过来修改提示词。这是一个持续的过程。

5.2 性能优化与成本控制

长期运行,尤其是使用商用API时,需要关注性能和成本。

  • 缓存策略:对于常见、固定的问题(如“你是谁?”“怎么联系你?”),可以设置回复缓存。第一次由LLM生成后,将问答对存储起来。下次遇到高度相似的问题时,直接返回缓存答案,无需调用LLM,极大降低延迟和成本。
  • 上下文窗口优化:如前所述,积极使用向量检索和摘要技术,严格控制每次请求发送给LLM的tokens数量。监控平均每次对话消耗的tokens,是成本控制的关键。
  • 模型阶梯使用:可以采用“小模型路由,大模型攻坚”的策略。用一个快速、廉价的小模型(如GPT-3.5-turbo)先对消息意图进行分类。如果是简单问候或明确问题,直接用小模型回复;如果是复杂、需要推理的问题,再路由到更强大的大模型(如GPT-4)处理。项目架构如果支持多模型后端,这个策略很容易实现。
  • 异步生成与延迟发送:对于非紧急消息,AI生成回复后,可以延迟几秒再发送,这样更接近真人打字的速度,体验更自然。同时,这也给了系统一个缓冲,可以在发送前做最后一次安全检查。

5.3 安全与隐私加固

让AI处理你的消息,安全是第一位的。

  • 网络隔离:确保整个服务部署在你的可控网络内。如果使用云服务,所有组件(数据库、Redis、应用)最好在同一个VPC内,不将管理界面直接暴露在公网,通过VPN或SSH隧道访问。
  • 最小权限原则:Telegram Bot只赋予它所需的最小权限。数据库、Redis等服务的访问密码要复杂并定期更换。.env配置文件严禁提交到代码仓库。
  • 内容审查与审核:在AI回复发送前,可以增加一个“审查层”。例如,用另一个轻量级模型或关键词列表,检查回复中是否包含不当言论、敏感信息或幻觉产生的错误事实。可以设置一个置信度阈值,低于阈值的回复暂不发送,转为人工审核。
  • 数据加密与清理:存储在向量数据库和对话历史中的消息,可以考虑进行加密存储。同时,设置自动清理策略,定期删除过于久远的历史数据,减少隐私泄露风险和数据冗余。

6. 常见问题与故障排查实录

在实际部署和运行中,你肯定会遇到各种问题。这里记录一些典型场景和解决思路。

6.1 AI回复质量不佳或答非所问

这是最常见的问题,根源多在提示词或上下文。

  • 症状:AI回复偏离主题,忘记之前对话,或者风格不符合预期。
  • 排查步骤
    1. 检查系统提示词:首先确认你设定的系统提示词是否正确加载。查看管理界面或日志,确认发送给LLM的完整提示词是什么。一个常见的错误是提示词被意外截断或覆盖。
    2. 检查上下文:开启调试日志,查看每次请求时,实际发送给LLM的历史对话内容(摘要+检索结果)是什么。很可能历史信息没有被正确拼接,或者检索到的片段不相关。
    3. 调整检索策略:如果使用了向量检索,尝试调整检索返回的数量(k值)。k值太小可能信息不足,k值太大可能引入噪声。也可以尝试不同的嵌入模型或相似度算法。
    4. 简化测试:暂时关闭所有高级功能(如记忆、摘要),只用最基本的“最后N轮对话”作为上下文,测试AI的回复能力。如果此时回复正常,说明问题出在高级功能模块;如果仍然异常,则问题在提示词或LLM本身。

6.2 服务不稳定,经常停止响应

这通常与资源或依赖服务有关。

  • 症状:服务运行一段时间后无响应,Docker容器退出,或消息积压不处理。
  • 排查步骤
    1. 查看日志docker-compose logs --tail=100 [服务名]是第一步。重点查找ERRORWARNING级别的日志。常见错误有:内存不足(OOM)、数据库连接失败、API密钥无效、网络超时。
    2. 检查资源:运行docker stats查看各容器的CPU、内存占用。LLM推理,尤其是大模型,非常消耗内存。如果内存耗尽,容器会被系统杀死。考虑为容器设置内存限制,或换用更小的量化模型。
    3. 检查依赖服务:确认Redis、向量数据库等依赖服务是否正常运行且网络可达。在容器内使用docker-compose exec [服务名] ping [依赖服务名]测试连通性。
    4. 队列积压:如果使用消息队列,检查队列中是否有大量未处理的任务。这可能是Worker进程崩溃或处理速度跟不上消息接收速度。需要增加Worker实例或优化单个Worker的处理性能。

6.3 Telegram Bot 收不到消息或无法回复

这是通信链路问题。

  • 症状:给Bot发消息没反应,服务器日志也没有收到消息的记录。
  • 排查步骤
    1. Token验证:首先确认TELEGRAM_BOT_TOKEN完全正确,没有多余空格或换行。可以尝试用一个最简单的Python脚本测试Token是否能正确调用Telegram API。
    2. Webhook vs. Long Polling:Telegram Bot有两种获取消息的方式:Webhook和getUpdates(长轮询)。项目通常使用Webhook,需要你的服务有一个能被Telegram服务器访问的公网HTTPS URL。检查Webhook是否设置成功:https://api.telegram.org/bot<YOUR_TOKEN>/getWebhookInfo。如果使用长轮询,则要确保服务能稳定连接外网。
    3. 防火墙与网络:如果你的服务器在防火墙或NAT后,确保Telegram的IP段(可以从官方文档查到)能够访问你服务器暴露的端口。同时,服务器本身也需要能访问api.telegram.org
    4. Bot权限:确保没有在@BotFather那里禁用Bot,或者设置了隐私模式(/setprivacy)导致Bot无法读取群组消息。

6.4 对话记忆混乱或丢失

这涉及到状态管理的可靠性。

  • 症状:AI记不住之前说过的话,或者把不同人的对话记混了。
  • 排查步骤
    1. 检查会话标识:系统是否正确地为每个独立的聊天(私聊、群组)创建并维护了唯一的会话ID。这个ID是关联所有历史记录和向量的关键。
    2. 检查向量存储:确认向量数据库的写入操作是否成功,没有报错。可以尝试直接查询向量数据库,看指定会话ID下是否有对应的向量记录。
    3. 摘要生成逻辑:如果使用滚动摘要,检查摘要生成的触发条件和内容。摘要是否过于简略丢失了关键信息?或者生成频率太低,导致上下文过长?
    4. 数据持久化:确认对话状态和记忆数据是否被持久化到磁盘。如果服务重启,内存中的数据会丢失。检查项目是否配置了持久化卷(Docker volumes)来保存数据库文件。

部署和调试这样一个系统,本身就是一次绝佳的学习过程。从最初的“跑起来就行”,到后来的“稳定高效”,再到最后的“智能贴心”,每一步的优化都让你对AI应用开发有更深的理解。这个项目就像一个乐高套装,提供了基础框架和零件,而最终能拼出什么样的“数字分身”,完全取决于你的想象力和动手能力。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 15:39:35

初创团队如何利用Taotoken快速原型验证多个大模型能力

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 初创团队如何利用Taotoken快速原型验证多个大模型能力 对于资源有限的初创团队而言&#xff0c;在项目早期进行技术选型与原型验证…

作者头像 李华
网站建设 2026/5/9 15:35:46

阴阳师自动化脚本终极指南:3步实现百鬼夜行智能挂机

阴阳师自动化脚本终极指南&#xff1a;3步实现百鬼夜行智能挂机 【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript 阴阳师百鬼夜行AI自动化脚本是Onmyoji Auto Script项目的核心功能…

作者头像 李华
网站建设 2026/5/9 15:35:30

CANN/HCOMM拓扑查询API

HcclRankGraphGetInstSizeListByLayer 【免费下载链接】hcomm HCOMM&#xff08;Huawei Communication&#xff09;是HCCL的通信基础库&#xff0c;提供通信域以及通信资源的管理能力。 项目地址: https://gitcode.com/cann/hcomm 产品支持情况 Ascend 950PR/Ascend 95…

作者头像 李华
网站建设 2026/5/9 15:33:54

昇腾CANN单算子参数Dump示例

0_adump_args 【免费下载链接】runtime 本项目提供CANN运行时组件和维测功能组件。 项目地址: https://gitcode.com/cann/runtime 描述 本用例展示了单算子执行场景下如何管理Dump算子信息&#xff0c;并将算子信息文件输出到path参数指定的目录&#xff0c;主线程中设…

作者头像 李华
网站建设 2026/5/9 15:28:04

CANN工具脚本使用指南

Tools Summary 【免费下载链接】cannbot-skills CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体&#xff0c;本仓库为其提供可复用的 Skills 模块。 项目地址: https://gitcode.com/cann/cannbot-skills Scope agent/scripts/estimate_matmul_datamove.py is…

作者头像 李华
网站建设 2026/5/9 15:27:46

ngx_close_accepted_connection

1 定义 ngx_close_accepted_connection 函数 定义在 ./nginx-1.24.0/src/event/ngx_event_accept.cstatic void ngx_close_accepted_connection(ngx_connection_t *c) {ngx_socket_t fd;ngx_free_connection(c);fd c->fd;c->fd (ngx_socket_t) -1;if (ngx_close_socke…

作者头像 李华