小白程序员福音!RTX 4090也能跑的32B大模型,手把手教你搭建RAG系统,告别AI幻觉!

前言

最近,通义开源的QwQ-32B模型可谓是火的一塌糊涂。

作为一个中型推理模型,QwQ-32B只有320亿参数,但却在多个基准测试中展现出优秀的推理能力,几乎直逼满血版DeepSeek R1,在数学计算、写作与代码编程方面的表现更是相当不错。

最重要的是,QwQ-32B不仅性能强大,还极其“亲民”,它体积小、推理快,支持消费级显卡部署,像RTX 4090这样的显卡就能轻松运行,非常适合普通个人开发者或者资源不足的科研党上手学习。

不过,由于QwQ-32B采用的是密集模型,相比DeepSeek R1,在长文本复杂推理上,经常会出现无法识别前面内容,或者幻觉问题

因此,在本地场景中,基于QwQ-32B部署RAG就成了解决这美中不足的最强外挂。

接下来,在本篇文章中,我们会基于Ollama开源平台,手把手向大家展示如何利用QwQ-32B和Milvus高效、安全地构建RAG(检索增强生成)系统。

01

选型思路

(1)QwQ-32B VS DeepSeek R1如何选择

同为主打推理的大模型,DeepSeek-R1的架构为MoE结构,QwQ-32B则属于典型的密集模型。

通常来说,MoE模型更加适合知识密集型场景,例如知识问答系统、信息检索等,以及大规模数据处理,例如在处理大规模文本数据、图像数据时,MoE模型可以通过不同专家处理不同的数据子集,提高处理效率。

但MoE庞大的参数量决定了,部署满血大模型需要在云端或者自有服务器资源上运行。

而密集模型体积小,计算成本高,更适合需要深度连贯推理的场景,例如复杂的逻辑推理任务、深度阅读理解等,以及复杂算法设计等对实时性要求不高的场景。最大的优点在于非常适合本地部署,但有时候,也会出现废话过多的情况。

对比维度密集模型(QwQ-32B)MoE模型(DeepSeek-R1)
优点训练难度相对低,过程简单直接 推理连贯性好,所有神经元都参与计算和推理,能整体把握上下文信息计算效率高,推理时只需激活部分专家 模型容量大,可通过增加专家数量扩展
缺点计算成本高,训练和推理需大量计算资源和内存 模型容量扩展受限,易过拟合,存储部署成本高训练复杂,需训练门控网络,考虑专家负载平衡 存在路由开销,门控网络路由选择有额外计算和时间消耗

密集模型和 MoE 模型各有其独特的优势和局限性,不存在绝对的优劣之分。在实际应用中,我们需要根据具体的任务需求、数据特点、计算资源和预算等因素来选择合适的模型架构。

不过,在我看来,未来的发展趋势可能是将两者的优势相结合,例如在一些复杂的任务中,可以先使用 MoE 模型进行初步的知识检索和粗粒度的处理,然后再利用密集模型进行深度的推理和细化,以达到更好的性能。

(2)向量数据库选型

考虑到QwQ-32B容易出现幻觉的问题,我们可以在其本地部署过程中,引入Milvus 开源向量数据库。Milvus 专为存储和查询高维向量(如 XLNet 生成的向量)而生,能够处理数百万乃至数十亿级的向量数据,并支持混合检索、全文检索等一众特性需求,是 GitHub 上最受欢迎的向量数据库。

(3)部署平台选型

本次部署,平台方面,我们可以考虑采用Ollama开源平台。作为一个为专大型语言模型(LLM)提供本地运行和管理的解决方案,Ollama可以简化部署和管理流程,允许用户通过简单的命令行工具和Docker集成快速部署模型,同时支持Modelfile管理来简化模型版本控制和复用。其次,它提供了丰富的模型库,并具备跨平台与硬件适配的特点,支持macOS、Linux、Windows及Docker容器部署,并能自动检测GPU并优先启用加速。此外,Ollama提供了开发者友好的工具,如REST API和Python SDK,方便将模型集成到应用中。

02

准备工作

环境

! pip install pymilvus ollama

数据集准备

我们可以使用Milvus文档2.4. x中的FAQ页面作为RAG中的私有知识,这是构建一个基础RAG的良好数据源。

下载zip文件并将文档解压缩到文件夹milvus_docs

! wget https://github.com/milvus-io/milvus-docs/releases/download/v2.4.6-preview/milvus_docs_2.4.x_en.zip ! unzip -q milvus_docs_2.4.x_en.zip -d milvus_docs

我们从文件夹milvus_docs/en/faq中加载所有markdown文件,对于每个文档,我们只需用“#”来分隔文件中的内容,就可以大致分隔markdown文件各个主要部分的内容。

from glob import glob text_lines = [] for file_path in glob("milvus_docs/en/faq/*.md", recursive=True): with open(file_path, "r") as file: file_text = file.read() text_lines += file_text.split("# ")

准备 LLM 和Embedding模型

Ollama支持基于LLM的任务和Embedding的多种模型,从而可以轻松开发检索增强生成(RAG)应用程序。对于这种设置:

  • 我们将使用QwQ(32B)作为文本生成任务的LLM。
  • 对于Embedding模型,我们将使用mxbay-embed-size,这是一个针对语义相似性优化的334M参数模型。

在开始之前,确保两个模型都被下载到本地:

! ollama pull mxbai-embed-large
! ollama pull qwq

准备好这些模型后,我们可以开始LLM生成和基于Embedding的检索工作流程。

生成测试embedding并打印其维度和前几个元素。

import ollama from ollama import Client ollama_client = Client(host="http://localhost:11434") def emb_text(text): response = ollama_client.embeddings(model="mxbai-embed-large", prompt=text) return response["embedding"] #test test_embedding = emb_text("This is a test") embedding_dim = len(test_embedding) print(embedding_dim) print(test_embedding[:10])
1024 [0.23217937350273132, 0.42540550231933594, 0.19742339849472046, 0.4618139863014221, -0.46017369627952576, -0.14087969064712524, -0.18214142322540283, -0.07724273949861526, 0.40015509724617004, 0.8331164121627808]
将数据加载到Milvus
创建集合
from pymilvus import MilvusClient milvus_client = MilvusClient(uri="./milvus_demo.db") collection_name = "my_rag_collection"

关于MilvusClient的参数设置:

  • 将URI设置为本地文件(例如…/milvus.db)是最便捷的方法,因为它会自动使用Milvus Lite将所有数据存储在该文件中。
  • 如果你有大规模数据,可以在Docker或Kubernetes上搭建性能更强的Milvus服务器。在这种情况下,请使用服务器的URI(例如http://localhost:19530)作为你的URI。
  • 如果你想使用Zilliz Cloud(Milvus的全托管云服务),请调整URI和令牌,它们分别对应Zilliz Cloud中的公共端点(Public Endpoint)和API密钥(Api key)。

检查集合是否已经存在,如果存在则将其删除。

if milvus_client.has_collection(collection_name): milvus_client.drop_collection(collection_name)

创建一个具有指定参数的新集合。

如果未指定任何字段信息,Milvus将自动创建一个默认的ID字段作为主键,以及一个向量字段用于存储向量数据。一个预留的JSON字段用于存储未在模式中定义的字段及其值。

milvus_client.create_collection( collection_name=collection_name, dimension=embedding_dim, metric_type="IP", # Inner product distance consistency_level="Strong", # Strong consistency level )
插入数据

逐行遍历文本,创建嵌入向量,然后将数据插入Milvus。

下面是一个新的字段text,它是集合中的一个未定义的字段。它将自动创建一个对应的text字段(实际上它底层是由保留的JSON动态字段实现的) ,你不用关心其底层实现。

from tqdm import tqdm data = [] for i, line in enumerate(tqdm(text_lines, desc="Creating embeddings")): data.append({"id": i, "vector": emb_text(line), "text": line}) milvus_client.insert(collection_name=collection_name, data=data)
Creating embeddings: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████| 72/72 [00:06<00:00, 11.86it/s] {'insert_count': 72, 'ids': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71], 'cost': 0}

03

构建 RAG

检索数据

我们来指定一个关于Milvus的常见问题。

question = "How is data stored in milvus?"

在集合中搜索该问题,并检索语义上最匹配的前3个结果。

search_res = milvus_client.search( collection_name=collection_name, data=[ emb_text(question) ], # Use the `emb_text` function to convert the question to an embedding vector limit=3, # Return top 3 results search_params={"metric_type": "IP", "params": {}}, # Inner product distance output_fields=["text"], # Return the text field )

我们来看看这个查询的搜索结果。

import json retrieved_lines_with_distances = [ (res["entity"]["text"], res["distance"]) for res in search_res[0] ] print(json.dumps(retrieved_lines_with_distances, indent=4))
[ [ " Where does Milvus store data?\n\nMilvus deals with two types of data, inserted data and metadata. \n\nInserted data, including vector data, scalar data, and collection-specific schema, are stored in persistent storage as incremental log. Milvus supports multiple object storage backends, including [MinIO](https://min.io/), [AWS S3](https://aws.amazon.com/s3/?nc1=h_ls), [Google Cloud Storage](https://cloud.google.com/storage?hl=en#object-storage-for-companies-of-all-sizes) (GCS), [Azure Blob Storage](https://azure.microsoft.com/en-us/products/storage/blobs), [Alibaba Cloud OSS](https://www.alibabacloud.com/product/object-storage-service), and [Tencent Cloud Object Storage](https://www.tencentcloud.com/products/cos) (COS).\n\nMetadata are generated within Milvus. Each Milvus module has its own metadata that are stored in etcd.\n\n###", 231.9922637939453 ], [ "How does Milvus flush data?\n\nMilvus returns success when inserted data are loaded to the message queue. However, the data are not yet flushed to the disk. Then Milvus' data node writes the data in the message queue to persistent storage as incremental logs. If `flush()` is called, the data node is forced to write all data in the message queue to persistent storage immediately.\n\n###", 226.54090881347656 ], [ "What is the maximum dataset size Milvus can handle?\n\n \nTheoretically, the maximum dataset size Milvus can handle is determined by the hardware it is run on, specifically system memory and storage:\n\n- Milvus loads all specified collections and partitions into memory before running queries. Therefore, memory size determines the maximum amount of data Milvus can query.\n- When new entities and and collection-related schema (currently only MinIO is supported for data persistence) are added to Milvus, system storage determines the maximum allowable size of inserted data.\n\n###", 210.63682556152344 ] ]

使用大型语言模型(LLM)构建检索增强生成(RAG)响应

将检索到的文档转换为字符串格式。

context = "\n".join( [line_with_distance[0] for line_with_distance in retrieved_lines_with_distances] )

为大语言模型提供系统提示(system prompt)和用户提示(user prompt)。这个提示是通过从Milvus检索到的文档生成的。

SYSTEM_PROMPT = """Human: You are an AI assistant. You are able to find answers to the questions from the contextual passage snippets provided.""" USER_PROMPT = f""" Use the following pieces of information enclosed in <context> tags to provide an answer to the question enclosed in <question> tags. <context> {context} </context> <question> {question} </question> """

使用Ollama提供的QwQ(32B)模型,根据提示生成响应。

from ollama import chat from ollama import ChatResponse response: ChatResponse = ollama_client.chat( model="qwq", messages=[ {"role": "system", "content": SYSTEM_PROMPT}, {"role": "user", "content": USER_PROMPT}, ], ) print(response["message"]["content"])
<think> Okay, I need to answer the question "How is data stored in Milvus?" using the provided context. Let me start by reading through the context carefully. First, looking at the first context section titled "Where does Milvus store data?". It mentions that Milvus handles two types of data: inserted data and metadata. Inserted data includes vectors, scalar data, and collection schema, stored as incremental logs in persistent storage. The supported backends are listed like MinIO, S3, GCS, etc. So I should note that inserted data goes to these object storages via incremental logs. Then metadata is stored in etcd for each Milvus module. That's straightforward—metadata in etcd. The second context about flushing data explains that data first goes to the message queue and then to persistent storage when flushed. But this might be more about the process rather than where it's stored, so maybe mention that insertion is into the message queue first before being written out. Third section on maximum dataset size mentions hardware constraints: memory for queryable data and storage for persistence. This could relate to how data is managed in terms of memory vs disk. The user asked "how is data stored," which might include both where (like object stores, etcd) and the process (message queue then persistent logs). Putting it all together, the answer should mention: - Two types: inserted data and metadata. For inserted data: - Stored as incremental logs in persistent storage using backends like MinIO, S3 etc. - Initially loaded into message queues, then written to disk. The flush() forces immediate writing if needed. Metadata: - Stored in etcd for each module. Also, the hardware part says that memory limits queryable data size and storage (like the object stores) limit total dataset size. So maybe mention these factors as part of how data is stored, considering capacity constraints. I should structure this clearly, perhaps bullet points or sections on inserted vs metadata, then processes like flushing, and finally limitations based on hardware. </think> Data in Milvus is stored in two main ways: 1. **Inserted Data**: - Includes vector data, scalar data, and collection schema. - Stored as **incremental logs** in **persistent storage**, supported by object storage backends such as MinIO, AWS S3, Google Cloud Storage (GCS), Azure Blob Storage, Alibaba Cloud OSS, and Tencent Cloud Object Storage (COS). - Initially loaded into a **message queue** when inserted. Milvus returns success upon insertion into the queue but does not immediately write to disk. A background process later writes this data to persistent storage. The `flush()` method can force immediate writing of all queued data to storage. 2. **Metadata**: - Generated internally by Milvus modules (e.g., collection configurations, partitions). - Stored in **etcd**, a distributed key-value store. **Hardware Considerations**: - **Memory**: The amount of data Milvus can query is limited by system memory since it loads specified collections/partitions into memory for queries. - **Storage Capacity**: The maximum dataset size is constrained by the underlying storage backend (e.g., object storage), which stores all inserted data and schema incrementally.

以上就是一个基于Milvus和Ollama构建检索增强生成(RAG)的全流程。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

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

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

相关文章

基于springboot框架的高校志愿服务管理系统_68e63n7s

目录高校志愿服务管理系统摘要开发技术核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;高校志愿服务管理系统摘要…

学长亲荐8个AI论文写作软件,助你轻松搞定本科论文!

学长亲荐8个AI论文写作软件&#xff0c;助你轻松搞定本科论文&#xff01; AI工具正在改变论文写作的未来 随着人工智能技术的不断发展&#xff0c;越来越多的本科生开始借助AI工具来辅助自己的学术写作。特别是在论文写作过程中&#xff0c;AI不仅能够帮助学生提高效率&#x…

软件测试工程师面试题(含答案)

面试题列表 1、自我介绍&#xff0c;涉及工作经历 答&#xff1a;基本信息擅长测试方向个人突出亮点以往工作经历等等。 2、在公司中测试的流程是什么 答&#xff1a;测试流程&#xff1a;需求评审>测试计划>测试计划>测试方案>编写用例>执行用例>回归测…

【AI炸场】Qwen3 Embedding+Reranker开源模型大杀器!一文教你实现跨语言智能搜索,代码全公开!

前言 这几天阿里低调放出两款 Qwen3 家族的新模型&#xff1a;Qwen3-Embedding 和 Qwen3-Reranker&#xff08;都分别包括0.6B轻量版、4B平衡版、8B高性能版三种尺寸&#xff09;。两款模型基于 Qwen3 基座训练&#xff0c;天然具备强大的多语言理解能力&#xff0c;支持119种…

基于springboot框架的鲜花售卖商城系统_9380p19j

目录系统概述核心功能模块技术亮点扩展性开发技术核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统概述 基于…

手把手教你用EKF玩转PMSM无感控制

基于EKF扩展卡尔曼滤波算法的永磁同步电机PMSM无传感器矢量控制Simulink仿真模型。 1.依据PMSM的数学模型搭建电机模型 2.双闭环dq解耦控制&#xff0c;转速外环&#xff0c;转矩内环 3. EKF算法对电机的转子电角度和机械转速进行估算搞电机控制的老铁们都知道&#xff0c;无传…

2.40 沪市指数走势预测案例:时间序列分析在金融领域的实战应用

2.40 沪市指数走势预测案例:时间序列分析在金融领域的实战应用 引言 本文继续沪市指数预测案例,深入分析时间序列分析在金融领域的应用。从模型选择、参数优化到实际应用,提供完整的实战经验。 一、金融时间序列特点 1.1 金融数据特征 # 金融时间序列特点 def financia…

【免费学习】基于FastAPI+Vue3的蛋糕零售店

项目适合人群 计算机相关专业的萌新、小白 (尤其是基础非常差的同学) 想学习编程的小伙伴 大一到大四都可以学 非常基础、非常简单、看完都可以跟着自己做出来&#xff01; 我准备了一个 FastAPIVue3项目脚手架&#xff0c;包含一些基本的功能模块&#xff0c;方便大家学习。…

不用 Cursor 也能搞?Milvus-MCP 惊艳登场,极简构建本地知识库,太香了!

前言 2025年了&#xff0c;应该没有企业还没有构建自己的企业知识库吧&#xff01;&#xff01;&#xff01; 我相信&#xff0c;自今年年初DeepSeek爆火&#xff0c;紧随其后MCP降低应用开发难度&#xff0c;构建企业级知识库&#xff0c;早就从可选项变成了必选项。 毕竟&…

微信小程序 springboot+uniapp二手图书商城销售系统 回忆小书屋_207086yx

目录系统概述技术架构核心功能特色设计应用场景开发技术核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统概述…

jQuery Nice Validator 新手教程

插件&#xff1a;jQuery Nice Validator 加载&#xff1a;通过模块名 validator 和 validator-lang 初始化入口&#xff1a;在表单通用绑定中调用 form.validator 关键点&#xff1a; form.validator($.extend({...}, form.data("validator-options") || {})) rules…

怎么成为一个 ai agent 工程师?

摘抄&#x1f4a1; 核心点 (原话/概括)&#x1f504; 内化 (我的话/关联)从后端转 AI Agent 工程师&#xff0c;核心是转变思维模式&#xff1a;从“确定性”的编程逻辑&#xff0c;转向“概率性”的系统构建。第一站&#xff1a;告别“调包侠”&#xff0c;真正理解 LLM 的能力…

收藏!小白程序员必看:大语言模型核心原理全解析(从ChatGPT到Transformer)

本文专为程序员和AI初学者打造&#xff0c;用通俗易懂的语言拆解大语言模型&#xff08;尤其是ChatGPT&#xff09;的核心逻辑&#xff0c;覆盖生成式特性、预训练机制、Transformer架构三大核心板块。文中系统梳理AI基础知识点&#xff0c;详解SFT、PPO、RLHF等关键训练方法&a…

我的超详细大模型学习路线!

我复盘了自己在实习中LLM的微调经验、AI-Agent开发经验、高stars开源项目经验&#xff0c;结合cs336课程理论的全过程&#xff0c;把碎片化的知识串成了一条线&#xff0c;希望能帮想转行的你&#xff0c;搭建一个坚实的知识框架&#xff01;学习路线主要包括以下内容&#xff…

【爆肝整理】OpenAI官方发布!2026 Agent元年,手把手教你从零搭建LLM智能体,小白也能秒变AI大神!

2026年被称为Agent 元年&#xff0c;LLM 智能体正成为技术新风口&#xff0c;在独立处理复杂的多步骤任务上潜力巨大&#xff0c;但如何从零构建一个既强大又可靠的 Agent 却让许多开发者头疼。 OpenAI 最新发布的《构建智能体实用指南&#xff08;A practicalguide tobuildin…

PCB的叠层结构和材质详解

思考&#xff1a;关于PCB的材质&#xff0c;主要是由copper、core、prepreg&#xff0c;这三个叠起来的&#xff0c;需要从材料、功能和应用三个维度讲清楚。Copper就是导体层&#xff0c;负责走线和铺铜&#xff1b;core是双面覆铜的刚性绝缘板&#xff0c;提供机械支撑&#…

飞算 JavaAI “执行 SQL 语句” 功能:在 IDEA 里轻松查数据结果

平时用 IDEA 写代码、处理数据时&#xff0c;要是想查 SQL 语句跑出来的结果&#xff0c;还要切换到其他数据库工具&#xff0c;来回操作特别麻烦。飞算 JavaAI 的 “执行 SQL 语句” 功能&#xff0c;直接在 IDEA 插件里就能搞定 SQL 执行和结果查看&#xff0c;不用跳转工具&…

无人机抗干扰技术解析与应用

无人机环境抗干扰是一个综合技术体系&#xff0c;通过多种技术协同确保在复杂电磁环境下仍能稳定通信和导航。其核心思路已从单点防护转向“智能感知-动态决策-协同防御”。主要抗干扰技术为了快速了解&#xff0c;下表汇总了各类技术的核心原理和代表性技术。各类技术深度解析…

Supertonic 部署与使用全流程保姆级指南(附已部署镜像)

前言 Supertonic 是一款实用的开源工具&#xff08;注&#xff1a;可根据实际补充Supertonic的核心功能&#xff0c;如语音合成/处理等&#xff09;&#xff0c;本文将详细讲解其 Python 版本的完整部署流程、日常使用方法&#xff0c;并附上我已部署好的镜像链接&#xff0c;…

深度解析Agent实现,定制自己的Manus

前一阶段Manus大火&#xff0c;被宣传为全球首款“真正意义上的通用AI Agent”&#xff0c;其核心能力就是基于LLM的自主任务分解与执行&#xff0c;根据官方测试数据&#xff0c;Manus 在 GAIA 基准测试中表现超越 OpenAI 同类产品&#xff0c;且完成任务的成本更低。虽然之后…