Wanwu框架:中文AI应用开发从入门到实践

news2026/5/15 7:59:34
1. 项目概述一个面向中文场景的AI应用开发框架最近在折腾AI应用开发的朋友可能都绕不开一个痛点如何快速、低成本地构建一个能理解中文、处理中文任务并且部署起来不麻烦的智能应用无论是想做个智能客服还是开发个文档总结工具或者搞点创意写作的玩意儿从模型选择、接口调用到前后端整合每一步都够喝一壶的。就在这个当口我注意到了GitHub上一个叫UnicomAI/wanwu的开源项目。这个名字很有意思“万物”的拼音听起来野心不小。简单来说Wanwu 是一个专为中文优化的 AI 应用开发框架。它不是一个具体的AI模型而是一套“脚手架”和“工具箱”目标是把构建AI应用过程中那些繁琐、重复的脏活累活给封装起来让开发者能更专注于业务逻辑本身。我花了一些时间深入研究、测试甚至用它跑了几个小项目。我的感受是Wanwu 的定位非常精准它瞄准了那些希望利用大语言模型LLM能力但又不想深陷于算法细节和复杂工程部署的中小团队或个人开发者。它通过提供一套开箱即用的组件——比如统一的多模型API接口、预设的提示词模板、便捷的RAG检索增强生成流水线以及相对轻量的部署方案——大幅降低了AI应用开发的门槛。特别是它对中文语境和国内开发环境的友好支持比如对主流国产模型API的集成、中文分词和向量化库的默认配置让它在一众国际主流框架中显得格外实用。接下来我就结合自己的实操经验把这个框架里里外外拆解一遍看看它到底是怎么工作的能用来做什么以及在实际使用中会遇到哪些“坑”。2. 核心设计思路与架构拆解2.1 为什么需要“另一个”AI框架在 LangChain、LlamaIndex 等明星项目已经非常成熟的今天Wanwu 的出现并非重复造轮子。它的核心设计哲学源于几个非常具体的痛点首先是中文处理的“水土不服”。很多国际主流框架在文本分割Text Splitting、向量化Embedding和检索Retrieval等环节默认配置是针对英文优化的。比如按空格、标点分割句子对中文就不太友好一些Embedding模型对中文语义的理解也不够深。Wanwu 在底层默认集成或优先推荐了针对中文优化的组件例如采用jieba或pkuseg进行更准确的中文分词使用text2vec、BGE等在中英文评测中表现良好的开源Embedding模型让开发者起步就能获得更好的中文效果。其次是模型API的“碎片化”与“高成本”。OpenAI的API虽好但存在网络访问、成本以及数据合规等问题。国内也有诸多优秀的模型提供商如智谱AI、百度文心、阿里通义、月之暗面等但每家接口规范、参数命名、计费方式都不同。Wanwu 设计了一个统一的模型抽象层将不同厂商的API封装成一致的调用方式。开发者只需在配置文件中指定模型类型和API密钥在代码中就可以用同一套接口去调用GPT-4、GLM-4或Qwen-Max极大简化了多模型切换和A/B测试的成本。第三是部署与工程化的“沉重”。完整的AI应用链路过长从数据接入、预处理、向量存储、检索、推理到结果后处理每一个环节都需要基础设施。Wanwu 尝试提供一套“适度封装”的解决方案。它不追求大而全而是提供一套核心的、可插拔的模块。例如它的RAG流水线提供了从文档加载、分割、向量化到向量数据库存储和检索的完整链路但每个环节都可以用社区主流工具如Chroma,Milvus Lite,FAISS替换平衡了开箱即用与灵活性。2.2 Wanwu 的核心模块组成Wanwu 的架构可以清晰地分为四层从上到下分别是应用层Application提供高阶、任务导向的封装。例如直接提供一个DocumentQA类你只需喂给它文档和问题它就能自动完成检索、生成答案的全过程。这适合快速原型验证。链与代理层Chain/Agent这是框架的“大脑”。它基于类似LangChain的思想将复杂的任务分解为多个可序列化执行的步骤链或者赋予LLM使用工具如计算器、搜索引擎、数据库查询的能力代理。Wanwu 在这里可能预置了一些针对中文场景优化的链比如“多轮对话信息抽取链”、“长文档摘要链”。核心组件层Core Components这是框架的“躯干”包含了最常用的基础构件LLM集成统一接口对接国内外各大模型。提示词管理支持从文件加载、变量插值的模板系统内置一批针对中文任务优化过的提示词模板。嵌入与向量存储集成中文优化的Embedding模型和多种向量数据库客户端。文档加载器支持PDF、Word、Excel、Markdown、网页等多种格式的中文文档解析。文本分割器提供按中文字符、语义段落、固定长度重叠分割等多种策略。工具与工具集层Tools这是框架的“手脚”。提供了一系列现成的工具函数比如联网搜索、数据库查询、代码执行、API调用等方便组装给Agent使用。这种分层设计的好处是新手可以从应用层或链层快速开始享受高度自动化而资深开发者可以深入到核心组件层定制每一个细节甚至替换底层实现。3. 从零开始快速上手与核心配置3.1 环境搭建与安装Wanwu 通常通过pip安装。由于它依赖一些本地计算库如用于向量计算的numpy 用于深度学习的torch建议在一个干净的Python虚拟环境中进行。# 创建并激活虚拟环境以conda为例 conda create -n wanwu_env python3.10 conda activate wanwu_env # 通过pip安装wanwu pip install unicom-ai-wanwu注意项目可能处于快速迭代期依赖冲突是常见问题。如果安装失败可以尝试先安装基础依赖pip install numpy torch再安装wanwu或者查看项目GitHub仓库的requirements.txt或pyproject.toml文件手动处理版本冲突。安装完成后最关键的一步是配置模型API密钥。Wanwu 通常会使用一个配置文件如config.yaml或.env文件来管理敏感信息和全局设置。# 示例 config.yaml llm: openai: api_key: sk-... # 你的OpenAI Key base_url: https://api.openai.com/v1 # 可替换为代理地址 zhipuai: # 智谱AI api_key: your_zhipu_key qwen: # 阿里通义千问 api_key: your_qwen_key model: qwen-max embedding: default_model: bge-large-zh # 默认使用BGE中文模型 model_path: local/path/to/bge # 或使用本地模型路径 vector_store: type: chroma # 向量数据库类型可选 chroma, faiss, milvus persist_path: ./chroma_db # 数据持久化目录在代码中你需要初始化配置并创建核心对象。from wanwu import Config, LLM, Embedding # 加载配置 config Config.from_yaml(path/to/config.yaml) # 创建一个LLM实例例如使用智谱GLM-4 llm LLM(config, providerzhipuai, modelglm-4) # 创建一个Embedding实例 embeddings Embedding(config)3.2 第一个示例与模型对话和文档问答让我们完成两个最简单的任务感受一下Wanwu的流程。任务一简单的对话完成from wanwu import LLM # 假设config已初始化 llm LLM(config, provideropenai, modelgpt-3.5-turbo) response llm.complete(请用一句话解释什么是机器学习。) print(response.content) # 输出可能为机器学习是让计算机从数据中学习规律并利用这些规律对未知数据进行预测或决策的技术。任务二基于本地文档的问答RAG流程这是Wanwu的强项。假设你有一个关于公司产品的PDF说明书product.pdf。from wanwu import DocumentLoader, TextSplitter, VectorStore, Retriever, DocumentQA # 1. 加载文档 loader DocumentLoader() documents loader.load(./product.pdf) # 返回一个Document对象列表 # 2. 分割文本采用中文友好的递归字符分割 splitter TextSplitter(chunk_size500, chunk_overlap50, separator\n) split_docs splitter.split_documents(documents) # 3. 生成向量并存入向量数据库这步可能封装在VectorStore初始化中 vector_store VectorStore.from_documents( documentssplit_docs, embeddingembeddings, # 前面创建的Embedding实例 persist_path./my_product_db ) # 4. 创建检索器 retriever Retriever(vector_storevector_store, search_typesimilarity, k3) # 5. 使用高阶API进行问答 qa_chain DocumentQA(llmllm, retrieverretriever) answer qa_chain.run(你们的产品支持哪些支付方式) print(answer)这个流程看似步骤不少但Wanwu已经将最复杂的向量化、检索、提示词组装等环节隐藏了起来。DocumentQA.run()一句代码背后它自动完成了从问题中提取关键词、在向量库中检索相关文档片段、将片段和问题组合成增强的提示词、发送给LLM、解析返回结果。4. 核心功能深度解析与实战技巧4.1 统一LLM接口如何优雅地切换模型Wanwu 的LLM类是其核心价值之一。它抽象了不同模型提供商的差异。以下是如何利用这一特性# 定义模型配置字典 model_configs { openai_gpt4: {provider: openai, model: gpt-4-turbo-preview}, zhipu_glm4: {provider: zhipuai, model: glm-4}, qwen_max: {provider: qwen, model: qwen-max}, } # 创建不同模型的实例 llms {name: LLM(config, **cfg) for name, cfg in model_configs.items()} # 同一个问题让不同模型回答方便对比 question 鲁迅和周树人是什么关系请用幽默的口吻回答。 for name, llm_instance in llms.items(): try: response llm_instance.complete(question) print(f\n--- {name} 的回答 ---) print(response.content[:200]) # 打印前200字符 except Exception as e: print(f\n--- {name} 调用失败 ---) print(f错误: {e})实操心得不同模型对同一提示词的反应差异很大。GPT-4可能在逻辑和创造性上更强而国产模型如GLM-4对中文文化背景理解可能更细腻。通过Wanwu进行这种A/B测试成本极低有助于为特定任务选择性价比最高的模型。另外务必在配置中设置合理的timeout和max_retries参数以应对网络不稳定或API限流。4.2 提示词模板系统告别字符串拼接手动拼接复杂的提示词是痛苦的且难以维护。Wanwu的模板系统支持从文件加载和变量替换。!-- system_prompt.jinja -- 你是一个资深的{{ industry }}领域专家擅长将复杂的概念用通俗易懂、生动有趣的方式讲解给小白用户。 请基于以下提供的上下文信息回答用户的问题。 如果上下文信息不足以回答问题请如实告知你不知道不要编造信息。 上下文 {% for doc in context %} [片段{{ loop.index }}]: {{ doc.page_content }} {% endfor %} 用户问题{{ question }} 请用中文回答在代码中使用这个模板from wanwu import PromptTemplate # 加载模板文件 template PromptTemplate.from_file(system_prompt.jinja) # 准备模板变量 input_variables { industry: 金融科技, context: retrieved_docs, # 这是一个Document对象列表 question: 什么是区块链的共识机制 } # 生成最终的提示词 formatted_prompt template.format(**input_variables) # 将提示词发送给LLM response llm.complete(formatted_prompt)注意事项模板中的变量名和传递给format的字典键必须完全匹配。对于复杂的逻辑如循环、条件判断Jinja2模板引擎非常强大但也要避免在模板中编写过于复杂的业务逻辑保持模板的清晰和可读性。建议将不同角色、不同任务的提示词模板分类存放在prompts/目录下形成知识库。4.3 RAG流水线优化提升中文检索质量RAG的效果严重依赖于检索质量。针对中文有几个关键点需要调整文本分割策略对于中文文档按句号、问号等标点分割可能不够因为中文句子较长。Wanwu的ChineseRecursiveTextSplitter会尝试按中文语义段落如遇到换行、特定标题和字符长度进行递归分割效果更好。关键是设置合适的chunk_size如300-800字符和chunk_overlap如50-100字符确保语义完整性又不丢失关联。from wanwu import ChineseRecursiveTextSplitter splitter ChineseRecursiveTextSplitter( chunk_size500, chunk_overlap80, separators[\n\n, 。, , , , ] # 分割优先级 )Embedding模型选择Wanwu 默认或推荐使用的BGE、text2vec系列模型在中文语义相似度任务上表现优异。如果你的文档领域非常垂直如医学、法律可以考虑使用在该领域数据上微调过的Embedding模型并在配置中指定本地路径。embedding: default_model: local model_path: ./models/my_finetuned_bge检索后处理Rerank简单的向量相似度检索可能会返回一些相关但不精确的片段。可以引入一个“重排序”模型如BGE-Reranker对Top-K个检索结果进行精排选择最相关的1-2个片段送入LLM既能提高答案准确性又能节省Token。from wanwu import Reranker reranker Reranker(modelBAAI/bge-reranker-large) retrieved_docs retriever.get_relevant_documents(question, k10) # 先多取一些 reranked_docs reranker.rerank(question, retrieved_docs, top_n2) # 重排序后取Top24.4 构建智能代理AgentAgent是让LLM具备使用工具能力的高级模式。Wanwu 提供了构建Agent的基础设施。from wanwu import Agent, Tool from wanwu.tools import SerpAPITool, CalculatorTool # 1. 定义工具 def search_web(query: str) - str: 一个简单的联网搜索工具函数。 # 这里可以集成SerpAPI、Bing Search等真实搜索API # 为简化示例返回模拟数据 return f关于{query}的搜索结果最新信息显示... # 将函数包装成Tool对象 search_tool Tool( nameWebSearch, funcsearch_web, description当需要获取实时信息或最新知识时使用此工具。输入是一个搜索查询词。 ) # 也可以使用预置工具 calc_tool CalculatorTool() # 2. 创建Agent并赋予它工具 agent Agent( llmllm, tools[search_tool, calc_tool], system_message你是一个有帮助的助手可以上网搜索和计算。请用中文回答。 ) # 3. 运行Agent result agent.run(请问今天北京天气怎么样如果气温是25摄氏度相当于多少华氏度) print(result)Agent会根据你的问题自动规划先调用WebSearch工具获取天气再调用CalculatorTool进行温度换算。Wanwu 的Agent内部会处理LLM的思考过程、工具选择、参数解析和结果整合。5. 部署实践与性能考量5.1 本地化部署与轻量化方案对于数据敏感或希望离线运行的应用Wanwu 支持完全本地化的部署。本地模型对于LLM可以集成Ollama、LM Studio或vLLM等本地推理框架。你需要先在本地启动一个兼容OpenAI API格式的模型服务。llm: local: api_key: empty base_url: http://localhost:11434/v1 # Ollama的默认地址 model: qwen:7b # Ollama中的模型名在代码中使用providerlocal来调用。本地Embedding使用sentence-transformers库加载本地Embedding模型避免网络调用延迟和费用。from sentence_transformers import SentenceTransformer # Wanwu内部可能已经封装配置中指定即可向量数据库使用Chroma或FAISS这种轻量级、可嵌入的向量库随应用一起发布无需额外部署数据库服务。5.2 构建简单的Web服务利用FastAPI可以快速将Wanwu应用包装成HTTP API服务。from fastapi import FastAPI, HTTPException from pydantic import BaseModel from wanwu import Config, DocumentQA, VectorStore, Embedding import uvicorn app FastAPI(titleWanwu 文档问答API) # 全局加载资源注意实际生产环境需考虑懒加载和生命周期 config Config.from_yaml(config.yaml) embeddings Embedding(config) vector_store VectorStore(persist_path./my_db, embeddingembeddings) qa_chain DocumentQA(llmllm, retrievervector_store.as_retriever()) class QueryRequest(BaseModel): question: str app.post(/ask) async def ask_question(request: QueryRequest): try: answer qa_chain.run(request.question) return {answer: answer} except Exception as e: raise HTTPException(status_code500, detailstr(e)) if __name__ __main__: uvicorn.run(app, host0.0.0.0, port8000)5.3 性能优化与成本控制缓存对频繁相同的查询结果进行缓存可以显著降低LLM API调用成本和延迟。可以为LLM.complete()方法添加一个简单的内存缓存如functools.lru_cache或使用Redis做分布式缓存。异步调用如果应用需要同时处理多个请求或调用多个工具使用异步IOasyncio可以大幅提升吞吐量。确保你使用的底层HTTP客户端如httpx支持异步。Token管理在构建RAG提示词时严格控制上下文窗口大小。只送入最相关的文档片段并可以尝试对长片段进行摘要后再送入以节省Token。监控与日志记录每一次LLM调用的模型、输入Token数、输出Token数、耗时和费用如果可计算便于后续分析和成本优化。6. 常见问题、故障排查与经验分享在实际使用Wanwu的过程中我踩过一些坑也总结了一些经验。6.1 安装与依赖问题问题pip install失败提示torch或其他依赖版本冲突。解决这是Python项目的常见问题。建议严格按照项目README或requirements.txt指定的Python版本创建环境。先安装框架声明的主要依赖如torch、transformers指定版本号然后再安装Wanwu。例如pip install torch2.1.0。使用pip install -e .从源码安装有时能更好地解决依赖关系。6.2 模型API调用失败问题配置了正确的API Key但调用LLM时超时或返回认证错误。排查网络问题检查是否能正常访问目标API端点。对于国外服务可能需要配置网络代理。Wanwu的配置中base_url字段可以设置为代理地址。Key与模型匹配确认你使用的API Key有权限调用指定的模型。例如OpenAI的Key分类型有些不能调用GPT-4。额度或频次限制检查账户余额和Rate Limit。可以在代码中加入重试机制和指数退避策略。参数错误某些国产模型API的参数名可能与OpenAI标准略有不同。查看Wanwu对应模型的源码或文档确认参数传递是否正确。6.3 RAG效果不佳答案不准确或胡编乱造问题检索到的文档片段似乎不相关或者LLM基于这些片段生成了错误答案幻觉。优化方向检查检索环节打印出每次检索到的原始文档片段看是否真的与问题相关。如果不相关问题出在文本分割chunk_size是否太大导致片段包含多个不相关主题或者太小导致语义不完整调整参数或尝试不同的分割器。Embedding模型当前模型是否适合你的文档领域尝试更换或微调Embedding模型。检索数量增加k值如从3到5给LLM更多上下文。优化提示词在系统提示词中加强指令例如“请严格依据提供的上下文信息回答问题。如果上下文没有明确答案请直接说‘根据已知信息无法回答该问题’不要自行推断或编造。”引入重排序如前所述使用Reranker模型对初步检索结果进行精排提升送入LLM的片段质量。后处理与引用要求LLM在答案中注明引用的来源片段编号便于人工校验和调试。6.4 处理长文档或复杂流程时内存/速度瓶颈问题处理一本几百页的PDF时内存占用高速度慢。解决流式处理不要一次性加载和分割所有文档。使用支持流式读取的加载器分批处理。索引持久化向量化完成后一定要将向量数据库持久化到磁盘。下次启动应用时直接加载避免重复计算。硬件加速如果使用本地Embedding模型确保已安装GPU版本的PyTorch并将模型加载到GPU上。简化流程对于对实时性要求不高的场景可以考虑将文档预处理加载、分割、向量化作为离线任务执行。6.5 个人经验与建议从小处着手不要一开始就试图用Wanwu构建一个庞大的系统。从一个具体的、小规模的任务开始比如对一个PDF进行问答跑通整个流程理解每个模块的作用再逐步增加复杂度。深入阅读源码Wanwu作为较新的项目文档可能不及其代码本身丰富。当遇到配置不生效或行为不符合预期时直接去阅读相关模块的源代码是最快的学习和排查方式。它的代码结构相对清晰是学习如何设计AI应用框架的好材料。拥抱社区关注项目的GitHub Issues和Discussions。你遇到的问题很可能别人已经遇到并解决了。积极提问和反馈也能帮助项目更好地发展。明确边界Wanwu是一个开发框架不是魔法。它不能替代你对业务的理解、对数据质量的把控以及对提示词工程的耐心调优。它提供的是“武器”和“地图”但打赢“战争”还得靠你自己。Wanwu 这个项目在我看来它最大的价值在于为中文AI应用开发者提供了一个“接地气”的起点。它可能没有LangChain那样庞大的生态和极高的灵活性但它解决的都是我们国内开发者真真切切会遇到的问题。通过合理的抽象和预设它让开发者能更快地验证想法构建出可用的原型甚至是不错的产品。如果你正在寻找一个能快速上手、专注于中文场景的AI应用开发工具Wanwu 绝对值得你花时间试一试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2602970.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…