当前位置: 首页 > news >正文

TASK04【Datawhale 组队学习】构建RAG应用

目录

  • 将LLM接入LangChain
  • 构建检索问答链
  • 运行成功图
  • 遇到的问题

langchain可以便捷地调用大模型,并将其结合在以langchain为基础框架搭建的个人应用中。

将LLM接入LangChain

  1. from langchain_openai import ChatOpenAI
  2. 实例化一个 ChatOpenAI 类,实例化时传入超参数来控制回答,配置API密钥
  3. llm.invoke(“prompt”)
  4. 提示模板(PromptTemplates):该文本提供有关当前特定任务的附加上下文。prompt=“模板”,text:用户输入 prompt.format(text=text)
    聊天模型的接口是基于消息(message),而不是原始的文本,PromptTemplates 也可以用于产生消息列表,在这种样例中prompt不仅包含了输入内容信息,也包含了每条message的信息(角色、在列表中的位置等)。
    一个ChatPromptTemplate是一个ChatMessageTemplate 的列表。每个 ChatMessageTemplate 包含格式化该聊天消息的说明(其角色以及内容)。
  • 定义设定system_template,human_template是用户的输入
  • ChatPromptTemplate构造参数包含list下的两个元组参数[
    (“system”, template),
    (“human”, human_template),
    ],这里可以添加更多的角色的消息
from langchain_core.prompts import ChatPromptTemplatetemplate = "你是一个翻译助手,可以帮助我将 {input_language} 翻译成 {output_language}."
human_template = "{text}"chat_prompt = ChatPromptTemplate([("system", template),("human", human_template),
])text = "我带着比身体重的行李,\
游入尼罗河底,\
经过几道闪电 看到一堆光圈,\
不确定是不是这里。\
"
messages  = chat_prompt.invoke({"input_language": "中文", "output_language": "英文", "text": text})
import os
# 新的导入语句os.environ['ZHIPUAI_API_KEY']="这里写上自己的api"
api_key = os.environ["ZHIPUAI_API_KEY"] #
from zhipuai_llm import ZhipuaiLLM
from dotenv import find_dotenv, load_dotenv# 读取本地/项目的环境变量。# find_dotenv()寻找并定位.env文件的路径
# load_dotenv()读取该.env文件,并将其中的环境变量加载到当前的运行环境中
# 如果你设置的是全局的环境变量,这行代码则没有任何作用。
_ = load_dotenv(find_dotenv())

在这里插入图片描述

构建检索问答链

我们可以使用LangChain的LCEL(LangChain Expression Language, LangChain表达式语言)来构建workflow,LCEL可以支持异步(ainvoke)、流式(stream)、批次处理(batch)等多种运行方式,同时还可以使用LangSmith无缝跟踪。

from langchain_core.runnables import RunnableLambda
def combine_docs(docs):return "\n\n".join(doc.page_content for doc in docs)combiner = RunnableLambda(combine_docs)
retrieval_chain = retriever | combinerretrieval_chain.invoke("南瓜书是什么?")

LCEL中要求所有的组成元素都是Runnable类型,前面我们见过的ChatModel、PromptTemplate等都是继承自Runnable类。上方的retrieval_chain是由检索器retriever及组合器combiner组成的,由|符号串连,数据从左向右传递,即问题先被retriever检索得到检索结果,再被combiner进一步处理并输出。

llm=zhipuai_model
from langchain_core.prompts import PromptTemplate
from langchain_core.runnables import RunnablePassthrough, RunnableParallel
from langchain_core.output_parsers import StrOutputParsertemplate = """使用以下上下文来回答最后的问题。如果你不知道答案,就说你不知道,不要试图编造答
案。最多使用三句话。尽量使答案简明扼要。请你在回答的最后说“谢谢你的提问!”。
{context}
问题: {input}
"""
# 将template通过 PromptTemplate 转为可以在LCEL中使用的类型
prompt = PromptTemplate(template=template)qa_chain = (RunnableParallel({"context": retrieval_chain, "input": RunnablePassthrough()})| prompt| llm| StrOutputParser()
)
question_1 = "什么是南瓜书?"
question_2 = "Prompt Engineering for Developer是谁写的?"
result = qa_chain.invoke(question_1)
print("大模型+知识库后回答 question_1 的结果:")
print(result)
result = qa_chain.invoke(question_2)
print("大模型+知识库后回答 question_2 的结果:")
print(result)
llm.invoke(question_1).content

在这里插入图片描述
在这里插入图片描述

# 无历史记录
messages = qa_prompt.invoke({"input": "南瓜书是什么?","chat_history": [],"context": ""}
)
for message in messages.messages:print(message.content)

在这里插入图片描述

# 有历史记录
messages = qa_prompt.invoke({"input": "你可以介绍一下他吗?","chat_history": [("human", "西瓜书是什么?"),("ai", "西瓜书是指周志华老师的《机器学习》一书,是机器学习领域的经典入门教材之一。"),],"context": ""}
)
for message in messages.messages:print(message.content)

在这里插入图片描述

import os
import sys
from zhipuai_llm import ZhipuaiLLM
os.environ['ZHIPUAI_API_KEY']=""
api_key = os.environ["ZHIPUAI_API_KEY"] #填写控制台中获取的 APIKey 信息sys.path.append(os.getcwd())# 将父目录放入系统路径中import streamlit as st
# from langchain_openai import ChatOpenAIfrom langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnableBranch, RunnablePassthrough
from zhipuai_embedding import ZhipuAIEmbeddings
from langchain_community.vectorstores import Chromadef get_retriever():# 定义 Embeddingsembedding = ZhipuAIEmbeddings()# 向量数据库持久化路径persist_directory = 'D:\\code\\llm_universe\\chroma'# 加载数据库vectordb = Chroma(persist_directory=persist_directory,embedding_function=embedding)return vectordb.as_retriever()
def combine_docs(docs):return "\n\n".join(doc.page_content for doc in docs["context"])def get_qa_history_chain():retriever = get_retriever()zhipuai_model = ZhipuaiLLM(model_name="glm-4-plus", temperature=0.1, api_key=api_key)llm = zhipuai_modelcondense_question_system_template = ("请根据聊天记录总结用户最近的问题,""如果没有多余的聊天记录则返回用户的问题。")condense_question_prompt = ChatPromptTemplate([("system", condense_question_system_template),("placeholder", "{chat_history}"),("human", "{input}"),])retrieve_docs = RunnableBranch((lambda x: not x.get("chat_history", False), (lambda x: x["input"]) | retriever, ),condense_question_prompt | llm | StrOutputParser() | retriever,)system_prompt = ("你是一个问答任务的助手。 ""请使用检索到的上下文片段回答这个问题。 ""如果你不知道答案就说不知道。 ""请使用简洁的话语回答用户。""\n\n""{context}")qa_prompt = ChatPromptTemplate.from_messages([("system", system_prompt),("placeholder", "{chat_history}"),("human", "{input}"),])qa_chain = (RunnablePassthrough().assign(context=combine_docs)| qa_prompt| llm| StrOutputParser())qa_history_chain = RunnablePassthrough().assign(context = retrieve_docs, ).assign(answer=qa_chain)return qa_history_chaindef gen_response(chain, input, chat_history):response = chain.stream({"input": input,"chat_history": chat_history})for res in response:if "answer" in res.keys():yield res["answer"]
def main():st.markdown('### 🦜🔗 动手学大模型应用开发')# st.session_state可以存储用户与应用交互期间的状态与数据# 存储对话历史if "messages" not in st.session_state:st.session_state.messages = []# 存储检索问答链if "qa_history_chain" not in st.session_state:st.session_state.qa_history_chain = get_qa_history_chain()# 建立容器 高度为500 pxmessages = st.container(height=550)# 显示整个对话历史for message in st.session_state.messages: # 遍历对话历史with messages.chat_message(message[0]): # messages指在容器下显示,chat_message显示用户及ai头像st.write(message[1]) # 打印内容if prompt := st.chat_input("Say something"):# 将用户输入添加到对话历史中st.session_state.messages.append(("human", prompt))# 显示当前用户输入with messages.chat_message("human"):st.write(prompt)# 生成回复answer = gen_response(chain=st.session_state.qa_history_chain,input=prompt,chat_history=st.session_state.messages)# 流式输出with messages.chat_message("ai"):output = st.write_stream(answer)# 将输出存入st.session_state.messagesst.session_state.messages.append(("ai", output))if __name__ == "__main__":main()

运行成功图

在这里插入图片描述

遇到的问题

解决了一个很久以来都觉得奇怪的问题,pip的下载的包是依据与conda虚拟环境的,jupyter内核也有运行的conda虚拟环境,这些都是相互依赖的,我出现的问题是jupyternotebook运行在环境2的,而直接pip下载的包是在环境1里面的,所以需要conda activate 环境2之后再进行包的下载。jupyter notebook的python核版本可以自己进行设置,但是如果在环境中运行了!python --version可能显示的是环境1的version。使用import sys print(sys.executable)可以查看当前jupyternotebook运行的python的环境。
在这里插入图片描述

在这里插入图片描述

“D:\anaconda\set\share\jupyter\kernels\python3_10_13”这里可以修改运行的python核的路径,直接进行复制
在这里插入图片描述
在这里插入图片描述
再修改argv的路径就行。display_name和文件夹的名字需要相同

元组tuple()
列表list[]
字典dictionary{“key”:“value”,“key”:“value”}
集合set{a,b,c}
数组array

import array
arr = array.array("i",[1,2,3])

队列:queue

from collections import deque#双端
q = deque([1,2,3])
q.append(4)
q.popleft()#队头删除,返回1

堆:heap

import heapq
heap = [3,1,2]
heapq.heapify(heap)#转换为最小堆
heapq.heappush(heap,0)# 插入 元素0
heapq.heappop(heap)#弹出最小元素

相关文章:

TASK04【Datawhale 组队学习】构建RAG应用

目录 将LLM接入LangChain构建检索问答链运行成功图遇到的问题 langchain可以便捷地调用大模型,并将其结合在以langchain为基础框架搭建的个人应用中。 将LLM接入LangChain from langchain_openai import ChatOpenAI实例化一个 ChatOpenAI 类,实例化时传入超参数来…...

YOLOv11旋转目标检测Hrsc2016

from ultralytics import YOLOmodel YOLO(/kaggle/input/model-v11-obb/yolo11n-obb.pt) model.train(data/kaggle/input/hrscobb4/HRSC-YOLO/data.yaml, epochs30) 1使用的训练平台为Kaggle 数据集:HRSC的三种形式 一级分类:船 有水平框版本&…...

Debian重装系统后

安装配置java环境 手动安装 下载openJDK:openJDK 设置替代项 sudo update-alternatives --install /usr/bin/java java /opt/jdk-21.0.2/bin/java 1 sudo update-alternatives --install /usr/bin/javac javac /opt/jdk-21.0.2/bin/javac 1 sudo update-alternat…...

野火鲁班猫(arrch64架构debian)从零实现用MobileFaceNet算法进行实时人脸识别(四)安装RKNN Toolkit Lite2

RKNN Toolkit Lite2 是瑞芯微专为RK系列芯片开发的NPU加速推理API。若不使用该工具,计算任务将仅依赖CPU处理,无法充分发挥芯片高达6TOPS的NPU算力优势。 按照官方文档先拉一下官方代码库,然后通过whl文件安装,因为我是python3.1…...

ElasticSearch导读

ElasticSearch 简介:ElasticSearch简称ES是一个开源的分布式搜素和数据分析引擎。是使用Java开发并且是当前最流行的开源的企业级搜索引擎,能够达到近实时搜索,它专门设计用于处理大规模的文本数据和实现高性能的全文搜索。它基于 Apache Luc…...

【STM32】自定义打印函数

STM32 学习笔记:理解 my_printf 与 va_start 在嵌入式开发中,我们常常需要实现类似标准 C 中 printf 的调试输出功能。为了支持“任意数量参数”的传递,C 语言提供了对 可变参数(variable arguments) 的支持。其中&am…...

基于 STM32 的 PC ARGB 风扇控制器设计与实现

一、项目背景 最近购入的 X99 系列主板,没有风扇的 ARGB 彩灯接口,并且在 Ubuntu 系统上 4pin 的风扇接口调速也是非常的难用,sensor 扫描不到传感器,于是决定手搓一个风扇控制器,来实现转速自定义和彩灯控制。 我控制…...

【软件设计师】计算机网络考点整理

以下是软件设计师考试中 ​​计算机网络​​ 的核心考点总结,帮助您高效备考: ​​一、网络体系结构与协议​​ ​​OSI七层模型 & TCP/IP四层模型​​ 各层功能(物理层-数据链路层-网络层-传输层-会话层-表示层-应用层)对应协…...

在 Qt 中实现动态切换主题(明亮和暗黑)

目录 步骤 1:准备主题文件步骤 2:将 QSS 文件加入资源系统步骤 3:创建主题管理类步骤 4:在应用程序中切换主题步骤 5:处理自定义控件和动态资源步骤 6:保存用户主题偏好步骤 7:处理图片资源切换…...

JavaEE 初阶文件操作与 IO 详解

一、文件操作基础:File 类 作用:操作文件或目录(创建、删除、获取信息)。 核心方法: exists():文件是否存在createNewFile():创建新文件mkdir():创建目录delete():删除…...

基于Qt的app开发第十天

写在前面 笔者昨天刚刚收到课设的截止时间要求,距离写这篇博客的时间还有一个月,我从申请自命题课设到今天已经27天了,先用两周时间学Qt,然后就开始做这个项目,现在已经快把基础功能全部实现了。 目前的打算是完成基础…...

QT中信号和事件的区别

好的,简单来说,Qt 的信号(Signal)和事件(Event)虽然都用于组件间通信和交互,但它们的机制和用途是不同的: 1. 信号(Signal) 概念:信号是对象发出的…...

AUTOSAR图解==>AUTOSAR_SRS_PWMDriver

AUTOSAR PWM驱动模块详解 基于AUTOSAR 4.4.0 SRS 规范文档 目录 1. PWM驱动概述2. PWM驱动架构3. PWM驱动配置4. PWM驱动API接口5. PWM驱动状态管理6. PWM驱动典型应用场景7. 总结1. PWM驱动概述 AUTOSAR PWM驱动是AUTOSAR基础软件中的一个重要组件,属于微控制器抽象层(MCAL)…...

SQL数据处理流程

一、数据处理 1、数据清洗 对空值处理:删除/填充为0 -- 用 0 填充 NULL SELECT COALESCE(sales, 0) AS sales FROM orders;-- 删除含 NULL 的记录 DELETE FROM users WHERE email IS NULL; COALESCE(bonus, 0) 相当于IF(bonus IS NULL, 0, bonus),当…...

Mysql差异备份与恢复

1.练习差异备份 差异备份:备份完全备份后,新产生的数据。 在192.168.88.50主机完成差异备份 步骤一:练习差异备份//周一完全备份 mysql> select * from test.one; --------------------- | name | age | sex | ------------------…...

目标检测 Lite-DETR(2023)详细解读

文章目录 迭代高级特征跨尺度融合高效的低层次特征跨尺度融合KDA:Key-aware Deformable Attention 论文翻译: CVPR 2023 | Lite DETR:计算量减少60%!高效交错多尺度编码器-CSDN博客 DINO团队的 (Lightweight Transfo…...

【Java学习方法】类变量

类变量 引出关键字:static 又名:静态变量,静态字段,类字段(字段又名属性,成员方法),类属性 是什么? 供该(同一个类)的所有对象共享的变量 &am…...

智能手表为什么需要做 EN 18031 认证?

EN 18031 是欧盟针对电磁兼容性(EMC)中人体暴露于电磁场的安全要求制定的标准,全称为 《Electromagnetic compatibility (EMC) - Standards for protective measures against electromagnetic fields with regard to human exposure》&#x…...

什么是 Agent 的 Message

Messages 2.4.1 概述 什么是 Agent 的 Message? 当你和朋友聊天、在网上搜索信息或是对手机语音助手说“帮我查一下天气”时,其实你都在向某个“代理者(Agent)”发送一条“信息(Message)”。这里的“代理者”既可以是一个人,也可以是一个能执…...

如何用JAVA手写一个Tomcat

一、初步理解Tomcat Tomcat是什么? Tomcat 是一个开源的 轻量级 Java Web 应用服务器,核心功能是 运行 Servlet/JSP。 Tomcat的核心功能? Servlet 容器:负责加载、实例化、调用和销毁 Servlet。 HTTP 服务器:监听端口…...

WebRTC与RTSP|RTMP的技术对比:低延迟与稳定性如何决定音视频直播的未来

引言 音视频直播技术已经深刻影响了我们的生活方式,尤其是在教育、医疗、安防、娱乐等行业中,音视频技术成为了行业发展的重要推动力。近年来,WebRTC作为一种开源的实时通信技术,成为了音视频领域的重要选择,它使得浏览…...

COMPUTEX 2025 | 广和通创新解决方案共筑AI交互新纪元

5月20日至23日,广和通携多领域创新解决方案亮相2025年台北国际电脑展(COMPUTEX 2025),台北南港展览馆#K0727a展位。此次展会,广和通围绕“Advancing Connectivity Intelligent Future”为主题,设置四大核心…...

COMPUTEX 2025 | 广和通率先发布基于MediaTek T930 平台的5G模组FG390

5月19日,全球领先的无线通信模组和AI解决方案提供商广和通率先发布基于MediaTek T930平台的5G模组FG390系列。FG390系列模组为以5G固定无线接入(Fixed Wireless Access,FWA)为代表的MBB终端产品而设计,将在CPE&#xf…...

Power Integrations 汽车电源管理方案:为汽车应用增加系统价值

在新能源汽车产业蓬勃发展的当下,高效的电源管理方案成为提升汽车性能与可靠性的关键。近期,Power Integrations 举办线上交流会,介绍了基于其 1700V InnoSwitch3-AQ 反激式开关 IC 的五款全新参考设计,旨在为 800V 纯电动汽车提供…...

汽车转向系统行业2025数据分析报告

汽车转向系统市场概况 2024年全球汽车转向系统市场规模约为2769.4亿元,预计到2031年将增长至3296.3亿元,年均复合增长率(CAGR)为2.5%。这一增长主要得益于汽车行业的持续发展以及转向系统技术的不断进步。 市场驱动因素 汽车转…...

Tiny C 编译器中,如何实现宏展开和头文件包含的预处理逻辑?

首先,预处理的主要功能包括宏展开、头文件包含、条件编译等。用户的问题主要集中在宏展开和头文件包含,所以需要分别考虑这两个部分。 关于宏展开,首先需要解析#define指令。编译器在预处理阶段需要维护一个符号表,用来存储宏的名…...

谈谈 Kotlin 中的构造方法,有哪些注意事项?

在 Kotlin 中,构造方法分为主构造方法(Primary Constructor)和次构造方法(Secondary Constructor)。 1 主构造方法 主构造方法是类的核心构造方法,直接在类头声明,位于类名之后。 1.1 基本语…...

Elasticsearch常用命令

以下是 Elasticsearch 查看集群状态配置和索引完整操作流程的详细命令: 一、查看集群状态与配置 1. 集群健康状态 curl -X GET "localhost:9200/_cluster/health?pretty" 关键参数: level=indices:显示每个索引的健康状态 level=shards:显示每个分片的详细状…...

深入解读RTP协议:RFC 3550的技术分析与应用

引言 实时传输协议(RTP),作为一项重要的技术规范,在多媒体通信中扮演着至关重要的角色。尤其在音视频传输中,RTP为媒体流提供了端到端的传输机制,能够支持高质量、低延迟的音视频数据流传输。随着互联网及…...

使用 electron-builder 打包与发布 Electron 应用

基于 electron-vite-vue 项目结构 本文将基于 electron-vite-vue 脚手架,详细介绍如何使用 electron-builder 实现: ✅ 多平台打包(Windows / macOS / Linux)✅ 自动更新发布配置✅ 常用构建脚本与输出结构 📁 项目结…...

命令行删除node_modules

文章目录 前言一、linux二、windows 前言 最近公司在重构项目,使用的monorepo,这就导致多个项目有多个node_modules。所以在主项目的package.json中写一个清除所有项目的node_modules。第一次研究命令行的代码,记录一下。但我感觉我写的不太…...

naive-ui切换主题

1、在App.vue文件中使用 <script setup lang"ts"> import Dashboard from ./views/dashboard/index.vue import { NConfigProvider, NGlobalStyle, darkTheme } from naive-ui import { useThemeStore } from "./store/theme"; // 获取存储的主题类…...

开源Vue表单设计器FcDesigner中组件联动的配置教程

在用FcDesigner表单开发中&#xff0c;经常需要实现组件之间的联动行为&#xff0c;例如当某个输入框的值满足特定条件时&#xff0c;动态显示或隐藏其他组件。FormCreate 提供了强大的组件联动功能&#xff0c;通过 control 配置项实现组件的加载、显示、禁用和必填等状态控制…...

使用 Shadcn UI 构建 Java 桌面应用

许多桌面应用程序&#xff0c;如 Slack、Notion、Microsoft Teams 和 Linear&#xff0c;都采用基于 Web 的用户界面。这已成为现代软件开发中的常见做法&#xff0c;开发者可以借助熟悉的 Web 技术构建应用&#xff0c;从而简化开发流程。 在本篇文章中&#xff0c;我们将向您…...

25_05_19Linux实战篇、第一章_01若依前后端部署之路(后端)

Linux_实战篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;若依前后端动静分离(后端 ) 版本号: 1.0,0 作者: 老王要学习 日期: 2025.05.20 适用环境: Rocky9.5 文档说明 本文围绕 Linux 实战展开&#x…...

Python慕课学习记录

中国大学MOOC&#xff08;慕课&#xff09;观看记录&#xff1a; Python123课后相应的练习、考试记录...

2025年渗透测试面试题总结-快手[实习]安全工程师(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 快手[实习]安全工程师 一面问题分析与详细回答 1. 自我介绍 4. 项目问题与解决 7. 防止SQL注入&…...

【iOS(swift)笔记-10】利用类的继承来实现不同地区语言的显示

XCode项目原生开发有自带的可区分语言的功能体系&#xff0c;建议采用原生开发&#xff0c;此处利用类的继承来实现不同地区语言的显示是为了方便&#xff0c;而且在unity游戏开发中采用此法也挺灵活适用。 // 定义一个语言控制类 class LanguageController { // 根据系统切换…...

C语言中的弱符号 __attribute__((weak)) 的使用方法

以下是一个脱离 CallStack.h 的极简 C 语言示例&#xff0c;通过 弱符号覆盖 和 运行时检查 两个场景&#xff0c;展示 __attribute__((weak)) 的核心用法&#xff1a; 一、代码实现 1. 弱符号定义与覆盖&#xff08;weak_demo.c&#xff09; // weak_demo.c #include <st…...

禁止window安全中心乱删文件

将文件/文件夹添加到 Defender 排除列表 如果你确定文件安全&#xff0c;可以将其添加到 排除列表&#xff0c;防止 Defender 误删&#xff1a; Windows 安全中心 → “病毒和威胁防护” → “管理设置”。 下拉找到 “排除项” → “添加或删除排除项”。 点击 “ 添加排除…...

【JavaScript异步编程终极指南】从回调地狱到Async/Await的实战突围

目录 &#x1f30d; 前言&#xff1a;技术背景与价值&#x1f494; 当前技术痛点&#x1f6e0; 解决方案概述&#x1f465; 目标读者说明&#x1f50d; 一、技术原理剖析&#x1f9e0; 核心作用讲解&#x1f9e9; 关键技术模块说明⚖️ 技术选型对比 &#x1f4bb; 二、实战演示…...

【算法专题十五】BFS解决最短路问题

文章目录 1.最短路问题简介&#xff08;边权为1的最短路问题&#xff09;2.迷宫中离入口最近的出口2.1 题目2.2 思路2.3 代码 3.最小基因变化3.1 题目3.2 思路3.3 代码 4.单词接龙4.1 题目4.2 思路4.3 代码 5.为高尔夫比赛砍树5.1 题目5.2 思路5.3 代码 1.最短路问题简介&#…...

upload-labs通关笔记-第16关 文件上传之exif_imagetype绕过(图片马)

目录 一、exif_imagetype 二、开启exif模块 1、phpstudy设置勾选php_exif模块 2、php.ini文件配置开启php_exif模块 三、源码分析 四、图片马 1、图片马概念 2、图片马制作 五、渗透实战 1、上传图片马 2、利用文件包含访问图片马 &#xff08;1&#xff09;jpg …...

力扣-两数之和

1.题目描述 2.题目链接 LCR 006. 两数之和 II - 输入有序数组 - 力扣&#xff08;LeetCode&#xff09; 3.题目代码 class Solution {public int[] twoSum(int[] numbers, int target) {int[]retnew int[2];int left0,rightnumbers.length-1;while(left<right){if(numbe…...

什么是大数据?

大数据的详细定义 大数据是来自计算机、移动设备和机器传感器的海量数据&#xff08;数万亿字节&#xff09;。企业利用这些数据推动决策、改进流程和政策&#xff0c;并打造以客户为中心的产品、服务和体验。大数据之所以被定义为 “大”&#xff0c;不仅在于其体量&#xff…...

25_05_19Linux实战篇、第一章_02若依前后端部署之路(前端)

Linux_实战篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;若依前后端动静分离(前端) 版本号: 1.0,0 作者: 老王要学习 日期: 2025.05.21 适用环境: Rocky9.5 文档说明 环境准备 硬件要求 服务器&…...

SuperVINS:应对挑战性成像条件的实时视觉-惯性SLAM框架【全流程配置与测试!!!】【2025最新版!!!!】

一、项目背景及意义 SuperVINS是一个改进的视觉-惯性SLAM&#xff08;同时定位与地图构建&#xff09;框架&#xff0c;旨在解决在挑战性成像条件下的定位和地图构建问题。该项目基于经典的VINS-Fusion框架&#xff0c;但通过引入深度学习方法进行了显著改进。 视觉-惯性导航系…...

【后端】【UV】【Django】 `uv` 管理的项目中搭建一个 Django 项目

&#x1f680; 一步步搭建 Django 项目&#xff08;适用于 uv pyproject.toml 项目结构&#xff09; &#x1f9f1; 第 1 步&#xff1a;初始化一个 uv 项目&#xff08;如果还没建好&#xff09; uv init django-project # 创建项目&#xff0c;类似npm create vue⚙️ 第 …...

sqlsugar查看表结构并导出word文档

前提 SqlSugar 5.1.4 MiniWord 0.9.2 使用 using MiniSoftware; using SqlSugar;namespace ConsoleApp5 {internal class Program{/// <summary>/// 导出数据库表结构和字段信息/// https://www.donet5.com/Home/Doc?typeId1203/// </summary>/// <param n…...

【机器学习】支持向量机(SVM)

目录 一、支持向量机基本概念 1.1 定义 1.2 支持向量&#xff1a;距离超平面最近的样本点&#xff0c;决定了超平面的位置。 二、线性支持向量机 2.1 硬间隔支持向量机 2.2 软间隔支持向量机 三、非线性支持向量机 3.1 核函数 3.2 常用核函数 3.2.1 线性核&#xff1a…...