制作html网页相册代码/长沙网站seo排名
RAG
RAG(Retrieval Augmented Generation)系统,代表“检索增强生成”。RAG由五个关键步骤组成:
- 加载:这是指将数据从其所在位置(无论是文本文件、PDF、其他网站、数据库还是 API)获取到您的管道中。LlamaHub提供数百种连接器可供选择。
- 索引:这意味着创建一个允许查询数据的数据结构。对于大模型来说,这几乎总是意味着创建vector embeddings数据含义的数字表示,以及许多其他元数据策略,以便轻松准确地找到上下文相关的数据。
- 存储:一旦数据被索引,您几乎总是希望存储索引以及其他元数据,以避免重新索引。
- 查询:对于任何给定的索引策略,您可以通过多种方式利用 LLM 和 LlamaIndex 数据结构进行查询,包括子查询、多步查询和混合策略。
- 评估:任何管道中的关键步骤是检查它相对于其他策略的有效性,或者何时进行更改。评估提供客观衡量您对查询的答复的准确性、忠实度和速度。
学习文章:大模型RAG框架llama-index技术调研
(1)向量数据库
向量数据库是一种以向量或数据点的数学表示形式存储数据的数据库。 人工智能和机器学习使非结构化数据能够转换为捕获意义和上下文的数字表示(向量)。
常见的向量数据库:
- Chroma:开源嵌入数据库。功能丰富:查询、过滤、密度估计和许多其他功能。LangChain和LlamaIndex都支持。
- Pinecone:可托管向量数据库的平台。支持全托管服务、高度可伸缩、实时数据摄取、低延迟的搜索并且和LangChain集成。
- Weaviate:开源向量数据库。可以无缝扩展到数十亿个数据对象。速度快(Weaviate可以在几毫秒内从数百万个对象中快速搜索出最近的10个邻居)、更灵活(使用Weaviate,可以在导入或上传自己的数据时对数据进行矢量化,可以利用与OpenAI, Cohere, HuggingFace等平台集成的模块)和搜索扩展(除了快速矢量搜索,Weaviate还提供推荐、摘要和神经搜索框架集成)。
- Faiss:用于快速搜索相似性和密集向量的聚类的开源库。它包含能够在不同大小的向量集中搜索的算法,甚至可以处理那些超过内存容量的向量集。
- Qdrant:可以作为API服务运行,支持搜索最接近的高维向量。使用Qdrant,可以将嵌入或神经网络编码器转换为应用程序,用于匹配,搜索,推荐等任务。
参考文章:LLM 学习之「向量数据库」
(2)LangChain
LangChain 是一个基于大型语言模型(LLM)开发应用程序的框架。
参考文章:langchain 组件详解、Langchain、langchain-知识库问答
* 核心模块
核心模块主要有六个:模型输入输出(Model I/O)、数据连接(Data Connection)、链(Chains)、记忆(Memory)、代理(Agents)和回调(Callbacks)。
1 Model I/O
管理大语言模型(Models),及其输入(Prompts)和格式化输出(Output Parsers)。
主要包含组件:Prompts、Language Models 和 Output Parsers。用户原始输入与模型和示例进行组合,然后输入给大语言模型,再根据大语言模型的返回结果进行输出或者结构化处理。
学习文章:02|LangChain | 从入门到实战 -六大组件之Models IO
结构化格式输出:(16-2)输出解析器(Output Parsers)(2)
2 Data connection
管理主要用于建设私域知识(库)的向量数据存储(Vector Stores)、内容数据获取(Document Loaders)和转化(Transformers),以及向量数据查询(Retrievers)
主要包含组件:Document loaders、Document transformers、Text embedding models、Vector stores和Retrievers
学习文章:03|LangChain | 从入门到实战 -六大组件之Retrival
文本切割器:LangChain教程 | langchain 文本拆分器 | Text Splitters全集、RAG 分块Chunk技术优劣、技巧、方法汇总(五)
上下文压缩器:实现RAG管道中的上下文压缩和过滤
3 Chains
用于串联 Memory ↔️ Model I/O ↔️ Data Connection,以实现 串行化 的连续对话、推测流程
学习文章:04|LangChain | 从入门到实战 -六大组件之chain
4 Memory
用于存储和获取对话历史记录的功能模块
主要包括两个操作:读和写。把Memory集成到系统中涉及两个核心问题:存储的历史信息是什么、如何检索历史信息。
学习文章:05|LangChain | 从入门到实战 -六大组件之Memory、LangChain之内存记忆 ( Memory )
5 Agents
Agent的核心思想是使用大型语言模型(LLM)来选择要采取的行动序列。在Chain中行动序列是硬编码的,而Agent则采用语言模型作为推理引擎来确定以什么样的顺序采取什么样的行动。
Agent相比Chain最典型的特点是“自治”,它可以通过借助LLM专长的推理能力,自动化地决策获取什么样的知识,采取什么样的行动,直到完成用户设定的最终目标。因此,作为一个智能体,需要具备以下核心能力:
- 规划:借助于LLM强大的推理能力,实现任务目标的规划拆解和自我反思。
- 记忆:具备短期记忆(上下文)和长期记忆(向量存储),以及快速的知识检索能力。
- 行动:根据拆解的任务需求正确地调用工具以达到任务的目的。
- 协作:通过与其他智能体交互合作,完成更复杂的任务目标。
学习文章:从API到Agent:万字长文洞悉LangChain工程化设计、06|LangChain | 从入门到实战 -六大组件之Agent
6 Callbacks
Callbacks模块是框架中的一个核心组件,它允许用户定义特定的回调函数来响应某些事件或执行特定动作。这种机制极大地增强了Langchain的灵活性和功能性,使得在不修改现有代码的基础上,可以扩展或定制AI模型的行为。提供了一个回调系统,可连接到 LLM 申请的各个阶段,便于进行日志记录、追踪等数据导流。
主要有两种回调机制:
- 构造器回调将用于在该对象上进行的所有调用,并且将仅作用于该对象,即如果将处理程序传递给LLMChain的构造函数,则不会被附加到该链上的模型使用。
- 请求回调仅用于该特定请求,以及该请求包含的所有子请求(例如,对LLMChain的调用触发对模型的调用,使用的是通过传递的相同处理程序),这些回调是显式传递的。
学习文章:大模型从入门到应用——LangChain:回调函数(Callbacks)
(3)LlamaIndex
LlamaIndex是一个连接大型语言模型(LLMs)与外部数据的工具,它通过构建索引和提供查询接口,使得大模型能够学习和利用私有或者特定领域的数据。这一工具的出现,极大地拓展了大型语言模型的应用范围和深度,下面我们就来详细介绍LlamaIndex的基本概念、优劣势、代码示例以及使用场景。
参考文章:LlamaIndex 入门实战、LlamaIndex 一 简单文档查询、LlamaIndex 文档1
* 核心模块
LlamaIndex为我们提供了五大功能模块:
- 数据连接器(Data connectors):从其原生源和格式中获取现有数据。这些数据可以是 API、PDF、
SQL 等。 - 数据索引(Data Indexes):将数据结构化为中间表示,使其易于 LLM 使用且性能良好。
- 引擎(Engines):为数据提供便捷访问。例如:
- 查询引擎:用于问答的接口(例如 RAG pipeline)。
- 聊天引擎:用于与数据进行多消息“来回”互动的对话接口。
- 数据代理(Data Agents):由 LLM 驱动,通过工具增强,从简单的助手函数到 API 集成等。
- 应用集成(Application Integrations):此模块可以方便的将LlamaIndex与AI应用框架结合。
1 Data connectors
数据连接器(也称为reader)是LlamaIndex中的重要组件,它有助于从各种来源和格式摄取数据,并将其转换为由文本和基本元数据组成的简化文档表示形式。
- 首先,使用
文件加载器
将不同类型的文件加载成Document
对象形式。使用SimpleDirectoryReader
是一种基础的文件加载方式。
可以在LlamaHub中找到需要的文件类型的加载器:LlamaHub。from llama_index.core import VectorStoreIndex, SimpleDirectoryReader# 使用SimpleDirectoryReader从指定路径加载数据 documents = SimpleDirectoryReader("D:\GitHub\LEARN_LLM\LlamaIndex\data").load_data()
也可以选择将文字转换成Document结构。例如from llama_index.core import Document doc = Document(text="text")
- 然后,将文档内容进行转换。这些转换包括分块、提取元数据和对每个块进行向量化,从而确保大模型能够检索数据。最简单的方式是用
from_documents
方法。
此外,我们可以选择更改embeding模型。from llama_index.core import VectorStoreIndexvector_index = VectorStoreIndex.from_documents(documents) vector_index.as_query_engine()
先使用pip install llama-index-embeddings-huggingface
安装相应的库,然后用下述代码更改嵌入模型。
节点是更细粒度的数据实体,表示源文档的“块”,可以是文本块、图像或其他类型的数据。它们还携带元数据和与其他节点的关系信息,这有助于构建更加结构化和关系型的索引。在LlamaIndex中,一旦数据被摄取并表示为文档,就可以选择将这些文档进一步处理为节点。下面是如何使用SimpleNodeParser将文档解析为节点:from llama_index.node_parser import SimpleNodeParser # Assuming documents have already been loaded # Initialize the parser parser = SimpleNodeParser.from_defaults(chunk_size=1024, chunk_overlap=20) # Parse documents into nodes nodes = parser.get_nodes_from_documents(documents)
学习文档:【AI大模型应用开发】【LlamaIndex教程】1. 数据连接模块教程(附代码)、Embeddings、LlamaIndex 组件 - Loading
2 Data Indexes
LlamaIndex的核心本质在于它能够在被摄取的数据上构建结构化索引,这些数据表示为文档或节点。它的核心其实就是索引结构的集合,用户可以使用索引结构或基于这些索引结构自行建图。
下面是最简单的构建索引方式
from llama_index.core importVectorStoreIndex# Assuming docs is your list of Document objectsindex = VectorStoreIndex.from_documents(docs)
学习文档:【LlamaIndex 教程】一文看懂LlamaIndex用法,为LLMs学习私有知识、LlamaIndex使用指南、LlamaIndex 组件 - Storing
3 Engines
LlamaIndex 提供了定义 LLM 模块的统一接口,无论是来自 OpenAI、Hugging Face 还是 LangChain,这样您就不必自己编写定义 LLM 接口的样板代码。该接口由以下部分组成(更多详细信息如下):
- 支持文本完成和聊天端点
- 支持流式和非流式端点
- 支持同步和异步端点
基座LLM模型
LlamaIndex支持OpenAI
和HuggingFace
上的模型。使用Huggingface上的模型需要结合Settings
库来自定义模型。
from llama_index.core import PromptTemplate# Transform a string into input zephyr-specific input
def completion_to_prompt(completion):return f"<|system|>\n</s>\n<|user|>\n{completion}</s>\n<|assistant|>\n"# Transform a list of chat messages into zephyr-specific input
def messages_to_prompt(messages):prompt = ""for message in messages:if message.role == "system":prompt += f"<|system|>\n{message.content}</s>\n"elif message.role == "user":prompt += f"<|user|>\n{message.content}</s>\n"elif message.role == "assistant":prompt += f"<|assistant|>\n{message.content}</s>\n"# ensure we start with a system prompt, insert blank if neededif not prompt.startswith("<|system|>\n"):prompt = "<|system|>\n</s>\n" + prompt# add final assistant promptprompt = prompt + "<|assistant|>\n"return promptimport torch
from llama_index.llms.huggingface import HuggingFaceLLM
from llama_index.core import SettingsSettings.llm = HuggingFaceLLM(model_name="HuggingFaceH4/zephyr-7b-beta",tokenizer_name="HuggingFaceH4/zephyr-7b-beta",context_window=3900,max_new_tokens=256,generate_kwargs={"temperature": 0.7, "top_k": 50, "top_p": 0.95},messages_to_prompt=messages_to_prompt,completion_to_prompt=completion_to_prompt,device_map="auto",
)
嵌入Embedding模型
LlamaIndex也支持使用本地的自定义嵌入模型
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.core import SettingsSettings.embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-small-en-v1.5"
)
Prompts
LlamaIndex 使用提示来构建索引、执行插入、在查询期间执行遍历并合成最终答案。LlamaIndex 使用一组开箱即用的默认提示模板。
from llama_index.core import PromptTemplatetemplate = ("We have provided context information below. \n""---------------------\n""{context_str}""\n---------------------\n""Given this information, please answer the question: {query_str}\n"
)
qa_template = PromptTemplate(template)# you can create text prompt (for completion API)
prompt = qa_template.format(context_str=..., query_str=...)# or easily convert to message prompts (for chat API)
messages = qa_template.format_messages(context_str=..., query_str=...)
查询引擎
检索器负责根据用户查询(或聊天消息)获取最相关的上下文。它可以构建在索引之上,但也可以独立定义。它用作查询引擎(和聊天引擎)中的关键构建块,用于检索相关上下文。
retriever = index.as_retriever()
nodes = retriever.retrieve("Who is Paul Graham?")
学习文章:LlamaIndex 组件 - Models、LlamaIndex 组件 - Querying
4 Data Agents
5 Application Integrations
(4)LangChain和LlamaIndex区别
LangChain
:一个使用LLM开发应用程序的通用框架。LangChain是一个基于大语言模型(LLM)的框架,它并不开发LLM,而是为各种LLM实现通用的接口,将相关的组件“链”在一起,简化LLM应用的开发。它支持模型集成、提示工程、索引、记忆、链、代理等多种组件功能。
1)核心架构:LangChain 的核心是其链式架构,它允许开发者将不同的组件(如模型、提示、索引、记忆等)组合成一个处理流程。这种设计旨在灵活地处理各种复杂任务。
2)集成与交互:强调大模型与外部工具和数据库的集成。这种方法允许开发者利用各种资源来完成任务,而不仅限于模型本身的能力。
3)抽象层:提供了一个抽象层,允许不同的模型和工具通过标准化的接口进行交互,增加了模块间的互操作性。
4)组件与支持功能:
- 支持多种模型接口,如OpenAI、Hugging Face等。
- 支持提示工程,将提示作为输入传递给模型。
- 提供基于向量数据库的索引功能,如文档检索。
- 基于记忆组件提供上下文功能,存储对话过程中的数据。
- 支持链式调用,将多个组件链接在一起逐个执行。
- 支持代理Agent功能,用于根据用户输入决定模型采取的行动。
5)适用情景:更适合需要复杂对话流程、上下文管理、以及多步骤任务的应用场景,如聊天机器人、任务自动化等。 由于其提供了较为全面的组件支持,LangChain可以简化开发流程,让开发者更加关注于业务逻辑和模型效果的优化。但是,这也意味着它的学习曲线可能较陡,需要开发者对各种组件有深入的理解。
LlamaIndex
:一个专门用于构建RAG系统的框架。LlamaIndex是一个基于向量搜索的索引框架,主要用于提升大型语言模型在长文本或大量数据上的查询效率。它侧重于处理数据的索引和检索,使得模型能够快速定位到最相关的信息。
1)核心架构:Llama-Index 专注于索引和检索,主要通过向量搜索来提高大型语言模型在处理大量数据时的效率。
2)数据结构与优化:更侧重于数据索引的结构和优化。这使得它在处理和访问大型数据集方面表现出色。
3)信息索引:设计允许开发者构建和维护一个可扩展的信息索引,以便快速响应查询,特别适用于需要快速访问和分析大量数据的应用。
4)组件与支持功能:
- 专注于索引和检索功能,与向量数据库紧密结合。
- 支持自定义的索引结构和查询逻辑,适用于复杂的数据检索需求。
- 通常与大型语言模型结合使用,但更侧重于索引侧的性能优化。
- 提供了优化的数据结构和算法,以提升在大量数据上的查询速度。
5)适用场景:当应用场景主要涉及大量数据的快速检索和查询时,LlamaIndex更加适用,如知识问答系统、文档搜索引擎等。 专注于索引和检索,LlamaIndex相对容易上手,特别是对于需要快速构建高效查询系统的开发者来说,可以快速实现原型并优化性能。
参考文章:深度比较大模型开发工具链-LangChain和Llama-Index
相关文章:

RAG的学习与实践——LangChain和LlamaIndex学习笔记
RAG RAG(Retrieval Augmented Generation)系统,代表“检索增强生成”。RAG由五个关键步骤组成: 加载:这是指将数据从其所在位置(无论是文本文件、PDF、其他网站、数据库还是 API)获取到您的管道中。LlamaHub提供数百…...

Python爬虫原理以及3个小案例(源码)
一、爬虫原理 网络爬虫是一种用于自动获取网页内容的程序。它模拟用户浏览网页的过程,通过发送HTTP请求获取网页的源代码,并利用解析和提取技术来获取所需的数据。 1. HTTP请求与响应过程 爬虫向目标网站发送HTTP请求,请求包含URL、请求方…...

Vagrant配合VirtualBox搭建虚拟机
目录 前言一、软件下载及安装1.下载2.安装扩展: 二、创建一个虚拟机1.Vagrant官方镜像仓库 三、使用远程工具连接虚拟机1.修改相关配置文件 四、虚拟机克隆及使用1.通用配置2.简单搭建一个java环境3.克隆虚拟机1.重命名虚拟机(可选)2.打包指定…...

Elasticsearch 建议(Suggesters):实现自动补全和拼写检查
引言 在现代搜索引擎中,自动补全和拼写检查功能已成为提升用户体验的重要工具。Elasticsearch,作为一款强大的分布式搜索和分析引擎,提供了多种Suggesters API来帮助开发者实现这些功能。本文将详细介绍Elasticsearch中的四种主要Suggester—…...

部署过docker后,防火墙firewall与iptables的基本指令
一、iptables【无需stop docker服务】 如果服务器中部署了docker,优先选用iptables 1. 记录关闭docker中运行的mongoDB的27017端口: 由于docker与iptables存在配置规则,因此要修改docker相关端口的可访问性时需要使用下面的语句:…...

华为 RIP 协议中 RIP 兼容版本、RIPv1、RIPv2 在收发 RIP 报文时的区别
RIP (Routing Information Protocol,路由信息协议) RIP 是一个比较早期的协议,在实际部署中较少使用,但RIP 协议的机制是所有矢量跻由协议的基础,因此,掌握 RIP 协议的工作原理对研究矢量路由协议有重要的…...

深度学习pytorch多机多卡网络配置桥接方法
1 安装pdsh(Parallel Distributed Shell) sudo apt install pdsh sudo -s # 切换超级用户身份 …...

服务器信息获取工具
功能介绍 SSH连接到远程服务器: 用户可以输入目标服务器的IP地址、用户名、密码以及SSH端口(默认22)。 工具会尝试连接到远程服务器,并在连接失败时显示错误信息。 运行命令并返回输出: 工具可以在远程服务器上运…...

uniapp 防止重复提交数据
当用户快速点击按钮时候。我们可以统一在 请求拦截 中做防止重复提交数据的处理 以下是使用uview2封装的request请求 import { autoLogin, getUserInfo } from /utils/method.js import { refreshToken } from /api/login.js const serversUrl require(./serversUrl.js).ser…...

线程池工具类
线程池简述 为什么需要一个线程池工具类? 答:整个项目,用到线程执行任务的地方很多,不可能哪里用到就在那里直接new一个线程执行,这样资源得不到重复利用,一旦线程过多就会导致内存不足。 线程池的好处是…...

印尼“支付宝” DANA 如何借力 OceanBase 实现3个“关键零”
当前,移动支付在东南亚正迅猛发展,据谷歌、淡马锡与贝恩公司发布的报告预测,东盟地区蓬勃兴起的移动支付市场有望在2030年突破至2万亿美元的交易规模。 在此背景下,DANA作为印尼——东南亚最大经济体中的一员,秉持着推…...

2018-2022 年份微博签到数据集
前阵子接到一个实验室老师的需求,采集五年前(2024-52019)过年前后的北京微博签到数据。 前两年采集的深圳签到数据是 2022 年是当年的尚可,这次虽然时间跨度只有两个月,但是由于时间太过久远,但是颇费了一…...

Avalonia开发实践(二)——开发带边框的Grid
一、开发背景 在实际开发工作中,常常会用到Grid进行布局。为了美观考虑,会给每个格子加上边框,如下图: 原生的Grid虽然有ShowGridLines属性可以控制显示格子之间的线,但线的样式不能定义,可以说此功能非常…...

Java泛型的定义与运用
泛型 泛型的作用从使用层面上来说是统一数据类型,防止将来的数据转换异常。从定义层面上来说,定义带泛型的类,方法等,将来使用的时候给泛型确定什么类型,泛型就会变成什么类型,凡是涉及到泛型的都会变成确…...

Java如何自定义注解及在SpringBoot中的应用
注解 注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说…...

微软 Edge 浏览器全解析
微软 Edge 是微软推出的一个现代化浏览器,继承了 Internet Explorer(IE)的部分功能,但在速度、安全性和兼容性方面做出了很大改进。下面是对微软 Edge 浏览器的详细解析,包括其特点、安装、配置和常见问题的解答。 微软 Edge 浏览器的特点 基于 Chromium 内核 Edge 浏览…...

C++ 八股(1)
C语言中strcpy为什么不安全?如何解决? 主要原因是缺乏对输入长度的边界检查,容易导致缓冲区溢出漏洞。 解决:可以使用strncpy函数替代,或者在程序最顶端加入代码段 #define _CRT_SECURE_NO_WARNINGS 缓冲区溢出 …...

超高精电容传感器PCAP01调试+LABVIEW数据可视化调试手记
PCAP01超高精电容传感芯片STM32LabView可视化 文章目录 PCAP01超高精电容传感芯片STM32LabView可视化一、PCAP01介绍1.1、PCAP01引脚定义1.2、电容测量1.3、温度测量1.4、PCAP典型测试电路 二、PCAP01的STM32驱动2.1、SPI协议配置2.2、PCAP01浮空电容测量内部温度测量操作流程 …...

5.更多
发现一个项目与 MkDocs 类似的项目 PyMdown 拓展文档 ,等待探索。 1.排版模仿 以下网站使用 MkDocs 构建 Material for MkDocs 的美化 - Charles Les Notebook (charleschile.com) Documentation - Home Assistant (home-assistant.io) Godot Docs – master bra…...

ConditionalOnJndi注解使用介绍、应用场景以及示例代码
概述 ConditionalOnJndi 是 Spring Framework 中的一个条件注解,用于在特定的 JNDI (Java Naming and Directory Interface) 环境条件下决定是否创建一个 bean 或配置一个 bean。JNDI 是 Java EE 规范中定义的一种用于访问命名和目录服务的 API,它允许 …...

Spring Cloud 引入
1.单体架构: 定义:所有的功能实现都打包成一个项目 带来的后果: ①后端服务器的压力越来越大,负载越来越高,甚至出现无法访问的情况 ②业务越来越复杂,为了满足用户的需求,单体应用也会越来越…...

自定义波形图View,LayoutInflater动态加载控件保存为本地图片
效果图: 页面布局: <?xml version"1.0" encoding"utf-8"?><LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:la…...

每日一道算法题 求最小公倍数
题目 求最小公倍数_牛客题霸_牛客网 (nowcoder.com) Python 辗转相除法 dividend,divisormap(int,input().split()) #被除数,除数 # remainder0 余数 # 最小公倍数 def lcm(dividend,divisor):# 最大公约数def gcd(dividend,divisor):if 0divisor:return divid…...

【OCC学习18】三维几何对象工具包:TKG3d
【OCC学习18】三维几何对象工具包:TKG3d loveoobaby 已于 2022-08-26 10:10:32 修改 阅读量1.2k 收藏 10 点赞数 1 分类专栏: OpenCascade学习笔记 文章标签: 学习 版权 OpenCascade学习笔记 专栏收录该内容 24 篇文章60 订阅 订阅专栏…...

【Unix】SunOS/Oracle Solaris系统介绍
一.SunOS系统介绍 SunOS 是由 Sun Microsystems 开发的 Unix 操作系统。它最初是为 Sun 的 SPARC 架构计算机设计的,后来也支持了 Intel x86 架构。SunOS 是基于 UNIX System V 4.1 版本,并且随着时间的发展,SunOS 经历了多个版本迭代&#…...

氛围感视频素材高级感的去哪里找啊?带氛围感的素材网站库分享
亲爱的创作者们,大家好!今天我们来聊聊视频创作中至关重要的一点——氛围感。一个好的视频,不仅要有视觉冲击力,还要能够触动观众的情感。那我们应该去哪里寻找这些充满氛围感且高级的视频素材呢?别急,我这…...

基于Java的学生选课系统
第1章 系统概述 1.1概述 背景:随着计算机网络技术的发展,Web 数据库技术已成为应用最为广泛的网站架构基础技术。学生选课系统作为教育单位不可缺少的部分,其内容对于学校的决策者和管理者至关重要。传统的人工管理方式存在效率低、保密性差等…...

802.11漫游流程简单解析与笔记_Part2_05_wpa_supplicant如何通过nl80211控制内核开始关联
最近在进行和802.11漫游有关的工作,需要对wpa_supplicant认证流程和漫游过程有更多的了解,所以通过阅读论文等方式,记录整理漫游相关知识。Part1将记录802.11漫游的基本流程、802.11R的基本流程、与认证和漫游都有关的三层秘钥基础。Part1将包…...

STM32的 DMA(直接存储器访问) 详解
STM32的DMA(Direct Memory Access,直接存储器存取)是一种在单片机中用于高效实现数据传输的技术。它允许外设设备直接访问RAM,不需要CPU的干预,从而释放CPU资源,提高CPU工作效率,本文基于STM32F…...

14-65 剑和诗人39 - 打造你自己的 Devin
绝密 Devin 架构 更具体地说,构建您自己的 AI 代理。 Devin 使用 GPT-4 ,而人们已经开始用 Claude-3-Opus 构建替代方案 Devin 的 UI 体验更好。 例如,它甚至看不到浏览器,但它确实存在于用户面前 此外,你可以随时与它“交谈”,就像与人交谈一样,它会在后…...