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

【Deepseek+Dify】wsl2+docker+Deepseek+Dify部署本地大模型知识库问题总结

wsl2+docker+Deepseek+Dify部署本地大模型知识库问题总结

基于ollama部署本地文本模型和嵌入模型

部署教程
DeepSeek+dify 本地知识库:真的太香了

问题贴:启动wsl中docker中的dify相关的容器
发现postgre服务和daemon服务一直在重启,导致前端加载一直在转圈
Windows Docker部署Dify,容器db-1总是重启,导致http://localhost:80刷新不出来


deepseek 的api只支持completions 不支持embeddings是什么意思

Deepseek 的 API 只支持 completions,不支持 embeddings 意味着 Deepseek 的 API 提供了文本生成功能(completions),但不支持文本向量化功能(embeddings)。

具体解释:

  1. Completions(文本生成)

    • 通过输入一段文本,模型会生成后续内容。
    • 适用于续写、问答、对话等任务。
  2. Embeddings(文本向量化)

    • 将文本转换为固定长度的向量,用于表示文本的语义。
    • 适用于文本分类、聚类、相似度计算等任务。

总结:

Deepseek 的 API 只能用于文本生成,无法将文本转换为向量。如果需要文本向量化功能,需使用其他支持 embeddings 的 API,如 OpenAI 的 text-embedding-ada-002


为什么本地部署大模型都至少需要两个模型,一个语言模型,一个嵌入模型

在本地部署大模型时,通常需要至少两个模型:一个是语言模型,另一个是嵌入模型。这种架构的设计原因主要有以下几点:

  1. 功能分工明确
    语言模型:主要用于生成自然语言文本,例如回答问题、生成总结或进行对话。它的核心任务是根据输入的上下文生成连贯、准确的输出。
    嵌入模型:用于将文本转换为向量表示,这些向量能够捕捉文本的语义信息,便于后续的检索和匹配操作。
  2. 检索增强的需要
    在许多应用中,如检索增强生成(Retrieval-Augmented Generation, RAG),需要先通过嵌入模型将文本数据向量化,然后利用向量数据库快速检索与用户查询相关的文档片段。这些片段再被送入语言模型中,用于生成更准确、更丰富的回答。
  3. 效率与性能的优化
    嵌入模型通常比语言模型更轻量级,更适合进行大规模文本的向量化处理。
    语言模型则专注于生成任务,对上下文的语义理解和生成质量要求更高。
    这种分工可以有效降低计算资源的消耗,同时提高系统的响应速度。
  4. 语义理解和检索的结合
    嵌入模型能够将文本映射到一个语义向量空间,使得语义相似的文本在向量空间中距离更近。这种特性使得嵌入模型非常适合用于文本检索、相似性分析等任务。而语言模型则更擅长处理复杂的自然语言生成任务,两者的结合可以更好地满足复杂的应用需求。
  5. 多语言和跨语言支持
    在多语言场景下,嵌入模型可以将不同语言的文本映射到同一个语义空间,从而实现跨语言检索。语言模型则可以根据检索到的多语言上下文生成高质量的输出。
    综上所述,语言模型和嵌入模型在功能、效率和语义处理上的互补性,使得它们成为本地部署大模型时的常见组合。

Rerank模型的作用

Rerank模型是一种用于对初步检索结果进行重新排序的模型,目的是通过更精准的语义匹配和相关性评估,提升检索系统的精度和用户体验。

核心原理
Rerank模型的核心在于对候选文档与用户查询之间的相关性进行评分,并根据评分高低对文档进行重新排序。其输入是用户查询和候选文档列表,输出是按相关性从高到低排列的文档列表。

与Embedding模型的区别
Embedding模型:主要用于将文本转换为向量表示,便于后续的相似度计算和检索。
Rerank模型:在Embedding模型的基础上,进一步对检索结果进行精细化排序,更关注细粒度的语义匹配。

应用场景
搜索引擎:对初步检索结果进行二次排序,提升搜索结果的相关性。
推荐系统:结合用户历史行为和物品特征,优化推荐结果的排序。
问答系统:在检索增强生成(RAG)架构中,对检索到的文档进行重新排序,确保大语言模型(LLM)优先使用最相关的文档生成回答。
常见Rerank模型
Cohere Rerank:通过语义匹配提升搜索质量,支持长上下文和多种检索场景。
BGE-Reranker:由北京智源人工智能研究院(BAAI)推出,适用于中文和多语言场景。
Jina Reranker:支持本地部署,结合Jina的Embedding模型,用于知识库检索。

优势

  1. 高精度:显著提升检索结果的相关性。
  2. 上下文敏感:结合上下文信息和用户意图,提供更精准的结果。
  3. 灵活性:可以结合多种特征(如文档质量、用户行为等)进行排序。 示例在电商搜索中,Rerank模型可以对初步检索出的产品进行重新排序,确保最符合用户意图的产品排在前面,从而提升用户体验。

Dify分段的作用

Dify 的分段功能主要用于优化知识库的检索效率和回答精准性。以下是其主要作用和应用场景:

  1. 分段的作用 提高检索效率:由于大语言模型(LLM)的上下文窗口有限,无法一次性处理整个知识库的内容。通过分段,将长文本划分为多个内容块,可以更高效地进行检索和匹配。
    提升回答精准性:分段后,系统可以根据用户问题快速召回与问题高度相关的内容块,减少无关信息的干扰。这种细粒度的匹配能够帮助模型更准确地理解问题并生成更贴合知识库内容的回答。
  2. 分段模式 Dify 提供了两种分段模式,分别适应不同的文档结构和应用场景: (1)通用分段 特点:系统按照用户自定义规则将内容拆分为独立的分段。 适用场景:适用于内容简单、结构清晰的文档(如FAQ列表)。 设置项:
    分段标识符(默认为\n,支持正则表达式)。 分段最大长度(默认为500 Tokens,最大上限为4000 Tokens)。
    分段重叠长度(建议设置为分段长度的10%-25%)。 文本预处理规则(如去除多余空格、URL和电子邮件地址)。 (2)父子分段
    特点:采用双层分段结构,父区块提供丰富上下文信息,子区块用于精确检索。 适用场景:适用于文本量较大且段落相对独立的文档。 设置项: 父分段:
    分段标识符(默认为\n\n)。 分段最大长度(默认为500 Tokens)。 子分段: 分段标识符(默认为句子分段)。
    分段最大长度(默认为200 Tokens)。
  3. 父子分段的优势 精准匹配与上下文兼顾:通过子分段进行精确检索,再结合父分段补充上下文信息,既保证了检索的准确性,又提供了完整的背景。 应用场景示例:在AI智能客服中,用户的问题可以快速定位到文档中的具体句子,同时将句子所在的段落或章节发送给LLM,从而生成更精准的回答。
  4. 实时预览与调整 Dify 提供实时预览功能,用户可以根据预览效果实时调整分段策略,确保分段效果符合预期。 通过合理的分段策略,Dify 能够显著提升知识库的检索效率和回答质量,满足不同场景下的需求。

Dify的索引模式

在Dify中,索引模式是指在知识库中对文档内容进行索引和检索的方式,它直接影响检索效率和回答的准确性。Dify提供了两种主要的索引模式:高质量索引和经济索引。

  1. 高质量索引
    高质量索引模式通过使用Embedding模型将文本内容转换为向量,并支持以下检索方式:
    向量检索:将用户问题和文档内容向量化,通过计算向量相似度匹配语义相关的内容。
    全文检索:基于关键词匹配,通过倒排索引快速检索文档中的关键词。
    混合检索:结合向量检索和全文检索的优势,同时应用Rerank模型对结果进行重排序。
    高质量索引模式的优点是检索精度高,适合对准确性要求较高的场景。但需要注意,该模式可能会消耗更多的计算资源和费用。
  2. 经济索引
    经济索引模式仅使用关键词倒排索引,通过检索文档中的关键词来匹配内容。这种方式的优点是成本较低,但检索精度相对较低,适合对成本敏感的场景。
  3. 索引模式的选择
    高质量索引适用于对检索精度要求较高的场景,如专业领域的知识库。
    经济索引适用于对成本敏感且对检索精度要求不高的场景。
    索引模式是针对整个知识库设置的,一旦选择,将对知识库中的所有文档生效。如果需要调整,可以在知识库设置中进行切换。

为什么我在windows上安装docker desktop ,在wsl也能使用docker

在 Windows 上安装 Docker Desktop 后,能够在 WSL(Windows Subsystem for Linux) 中使用 Docker,是因为 Docker Desktop 与 WSL 2 进行了深度集成。这种集成是通过 Docker Desktop 的架构设计和 WSL 2 的特性实现的。以下是具体原因和工作原理:

1. Docker Desktop 的架构

Docker Desktop 在 Windows 上运行时,采用了以下架构:

  • Docker Daemon(Docker 引擎):运行在轻量级的 Linux 虚拟机(基于 Hyper-V)中。
  • Docker CLI(命令行工具):可以在 Windows 命令行(如 PowerShell 或 CMD)或 WSL 中使用。
  • WSL 2 集成:Docker Desktop 支持与 WSL 2 的无缝集成,使得 Docker CLI 和 Docker Daemon 可以在 WSL 2 环境中运行。

2. WSL 2 的特性

WSL 2 是 Windows Subsystem for Linux 的第二代版本,具有以下特性:

  • 完整的 Linux 内核:WSL 2 使用了一个真实的 Linux 内核(由 Microsoft 提供),因此它能够运行 Linux 原生应用程序,包括 Docker。
  • 与 Windows 的高度集成:WSL 2 允许 Linux 应用程序直接访问 Windows 文件系统,并与 Windows 应用程序进行交互。
  • 支持运行 Docker:由于 WSL 2 提供了完整的 Linux 环境,Docker Desktop 可以将 Docker Daemon 和 CLI 集成到 WSL 2 中。

3. Docker Desktop 与 WSL 2 的集成

Docker Desktop 通过以下方式实现与 WSL 2 的集成:

  1. Docker Daemon 运行在 Hyper-V 虚拟机中

    • Docker Desktop 启动时,会在 Hyper-V 中启动一个轻量级的 Linux 虚拟机,用于运行 Docker Daemon。
    • 这个虚拟机与 WSL 2 共享相同的 Linux 内核。
  2. Docker CLI 集成到 WSL 2

    • Docker Desktop 会将 Docker CLI(命令行工具)安装到 WSL 2 中。
    • 当你在 WSL 2 中运行 docker 命令时,WSL 2 会通过一个特殊的 socket 文件(/var/run/docker.sock)与 Docker Daemon 通信。
  3. 文件系统互通

    • WSL 2 可以直接访问 Windows 文件系统,因此你可以在 WSL 2 中运行 Docker 命令来管理 Windows 文件系统中的容器和镜像。
  4. 自动配置

    • Docker Desktop 安装时会自动检测 WSL 2 环境,并进行必要的配置,使得 Docker 可以在 WSL 2 中无缝使用。

4. 为什么需要 WSL 2 而不是 WSL 1

  • WSL 1 是一个兼容层,它将 Linux 系统调用转换为 Windows 系统调用,因此它不支持运行 Docker Daemon。
  • WSL 2 是一个完整的 Linux 内核,支持运行 Docker Daemon 和其他 Linux 原生应用程序,因此 Docker Desktop 需要 WSL 2 来实现与 Docker 的集成。

5. 如何在 WSL 2 中使用 Docker

  1. 确保已安装 Docker Desktop 并启用 WSL 2 集成

    • 打开 Docker Desktop 设置,进入 General 选项卡,确保已勾选 Use the WSL 2 based engine
    • 进入 Resources > WSL Integration 选项卡,确保已启用 WSL 2 发行版的 Docker 集成。
  2. 在 WSL 2 中运行 Docker 命令:

    • 打开 WSL 2 终端(如 Ubuntu)。
    • 运行 docker --version 检查 Docker CLI 是否可用。
    • 运行 docker run hello-world 测试 Docker 是否正常工作。

总结

在 Windows 上安装 Docker Desktop 后,能够在 WSL 中使用 Docker,是因为 Docker Desktop 与 WSL 2 进行了深度集成:

  • Docker Daemon 运行在 Hyper-V 虚拟机中。
  • Docker CLI 集成到 WSL 2 中,并通过 socket 文件与 Docker Daemon 通信。
  • WSL 2 提供了完整的 Linux 环境,支持运行 Docker。

这种集成使得开发者可以在 Windows 上同时享受 Docker 和 Linux 开发环境的便利。


大模型中的召回次数是什么意思

在大语言模型(LLM)和检索增强生成(RAG)系统中,召回次数(Recall Count)是一个重要的参数,它决定了在检索阶段从知识库中提取多少候选文档或片段。这个参数直接影响检索的范围和效率,同时也会对最终生成的回答质量产生影响。

  1. 召回次数的定义
    召回次数是指在检索阶段,系统从知识库中提取的候选文档或片段的数量。例如,当用户提出一个问题时,系统会先从知识库中检索与问题相关的文档片段,召回次数决定了检索出的候选片段的数量。
  2. 召回次数的作用
    扩大检索范围: 较高的召回次数可以增加检索到相关文档的概率,减少因召回不足导致的漏检。
    提高回答质量: 更多的候选文档可以为语言模型提供更丰富的上下文信息,从而生成更准确、更全面的回答。
    平衡效率与精度: 召回次数越高,检索范围越广,但计算成本和时间也会增加。因此,需要根据实际需求平衡召回次数和系统效率。
  3. 召回次数的设置
    召回次数的具体设置取决于以下因素:
    知识库的规模: 如果知识库内容较多,可能需要更高的召回次数来确保覆盖到相关文档。
    问题的复杂性: 对于复杂问题,可能需要更多候选文档来提供足够的上下文。
    系统资源: 较高的召回次数会增加计算资源的消耗,需要根据硬件资源进行调整。
  4. 召回次数与Rerank的关系
    在RAG架构中,召回次数与Rerank模型紧密相关:
    召回阶段: 系统根据召回次数从知识库中提取候选文档片段。
    Rerank阶段: Rerank模型会对这些候选片段进行重新排序,筛选出最相关的片段供语言模型使用。
  5. 召回次数的示例
    假设用户提问:“如何选择合适的笔记本电脑?”
    召回次数=10:系统从知识库中检索出10个最相关的文档片段。
    Rerank模型:对这10个片段进行重新排序,筛选出3个最相关的片段。
    语言模型:根据这3个片段生成回答,例如:“选择笔记本电脑时,需要考虑处理器性能、显卡配置、电池续航等因素……”
  6. 召回次数的优缺点
    优点:
    提高检索的全面性,减少漏检。
    为语言模型提供更多上下文,提高回答质量。
    缺点:
    增加计算成本和检索时间。
    如果召回次数过高,可能会引入大量无关信息,降低效率。

总结
召回次数是检索阶段的一个关键参数,它决定了从知识库中提取的候选文档数量。合理设置召回次数可以平衡检索效率和回答质量,是优化检索增强生成系统的重要环节。

Dify的应用

聊天助手

Chatflow

相关文章:

【Deepseek+Dify】wsl2+docker+Deepseek+Dify部署本地大模型知识库问题总结

wsl2dockerDeepseekDify部署本地大模型知识库问题总结 基于ollama部署本地文本模型和嵌入模型 部署教程 DeepSeekdify 本地知识库:真的太香了 问题贴:启动wsl中docker中的dify相关的容器 发现postgre服务和daemon服务一直在重启,导致前端加…...

实战解析传统发电站智能化改造-第二期(带图带教程)

传统发电站的智能化改造,如同为老工匠配备高科技工具,提升效率与精准度。改造后的发电站兼具传统与智能,更高效、环保,适应现代能源需求。智慧系统搭建平台是连接感知层和应用层的桥梁,将原始数据转化为有价值的信息&a…...

鸿蒙5.0实战案例:基于自定义注解和代码生成实现路由框架

往期推文全新看点(文中附带全新鸿蒙5.0全栈学习笔录) ✏️ 鸿蒙(HarmonyOS)北向开发知识点记录~ ✏️ 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ ✏️ 鸿蒙应用开发与鸿蒙系统开发哪个更有前景&#…...

项目设置内网 IP 访问实现方案

在我们平常的开发工作中,项目开发、测试完成后进行部署上线。比如电商网站、新闻网站、社交网站等,通常对访问不会进行限制。但是像企业内部网站、内部管理系统等,这种系统一般都需要限制访问,比如内网才能访问等。那么一个网站应…...

单片机 Bootloade与二进制文件的生成

单片机的 Bootloader 是一种特殊的程序,负责在单片机上电后初始化硬件、更新用户应用程序(固件),并将控制权移交给用户程序。以下是其运行机制和关键流程的详细说明: 1、单片机 Bootloader 的核心作用 固件更新&…...

open webui 部署 以及解决,首屏加载缓慢,nginx反向代理访问404,WebSocket后端服务器链接失败等问题

项目地址:GitHub - open-webui/open-webui: User-friendly AI Interface (Supports Ollama, OpenAI API, ...) 选择了docker部署 如果 Ollama 在您的计算机上,请使用以下命令 docker run -d -p 3000:8080 --add-hosthost.docker.internal:host-gatewa…...

深度学习每周学习总结Y1(Yolov5 调用官方权重进行检测 )

🍨 本文为🔗365天深度学习训练营 中的学习记录博客Y1中的内容 🍖 原作者:K同学啊 | 接辅导、项目定制 ** 注意该训练营出现故意不退押金,恶意揣测偷懒用假的结果冒充真实打卡记录,在提出能够拿到视频录像…...

HTML项目一键打包工具:HTML2EXE 最新版

HTML2EXE 工具可以一键打包生成EXE可执行文件。可以打包任意HTML项目或者是一个网址为单个EXE文件,直接打开即可运行。支持KRPano全景VR项目、WebGL游戏项目、视频播放、,课件打包、网址打包等。 一、功能特点 类别序号功能标题1支持程序图标自定义(支持…...

网络工程师 (43)IP数据报

前言 IP数据报是互联网传输控制协议(Internet Protocol,IP)的数据报格式,由首部和数据两部分组成。 一、首部 IP数据报的首部是控制部分,包含了数据报传输和处理所需的各种信息。首部可以分为固定部分和可变部分。 固定…...

springboot-自定义注解

1.注解的概念 注解是一种能被添加到java代码中的【元数据,类、方法、变量、参数和包】都可以用注解来修饰。用来定义一个类、属性或一些方法,以便程序能被捕译处理。 相当于一个说明文件,告诉应用程序某个被注解的类或属性是什么&#xff0c…...

Pytorch实现之特征损失与残差结构稳定GAN训练,并训练自己的数据集

简介 简介:生成器和鉴别器分别采用了4个新颖设计的残差结构实现,同时在损失中结合了鉴别器层的特征损失来提高模型性能。 论文题目:Image Generation by Residual Block Based Generative Adversarial Networks(基于残留块的生成对抗网络产生图像) 会议:2022 IEEE Int…...

微信小程序模仿快播标签云滚动特效

说到快播,故事肯定就不少。用过的人都知道快播首页有个标签云的特效效果,就是渐隐渐显外加上下滚动,其实还挺好看的。至于其他故事嘛,因为没有酒,所以,还是来说说代码吧~ 一开始不是做这个特效需求&#xf…...

XUnity.AutoTranslator-deepseek——调用腾讯的DeepSeek V3 API,实现Unity游戏中日文文本的自动翻译

XUnity.AutoTranslator-deepseek 本项目通过调用腾讯的DeepSeek V3 API,实现Unity游戏中日文文本的自动翻译。 准备工作 1. 获取API密钥 访问腾讯云API控制台申请DeepSeek的API密钥(限时免费)。也可以使用其他平台提供的DeepSeek API。 …...

对比机器学习揭示了跨物种共享与特异性的脑功能结构|文献速递-医学影像人工智能进展

Title 题目 Contrastive machine learning reveals species -shared and -specific brainfunctional architecture 对比机器学习揭示了跨物种共享与特异性的脑功能结构 01 文献速递介绍 猕猴作为人类的动物模型,广泛用于研究大脑和行为的关键方面(G…...

Vue 和 React 响应式的区别

React 和 Vue 在响应式机制上的核心区别主要体现在数据变化侦测方式、更新触发逻辑和设计理念上,具体如下: 一、数据变化侦测方式 Vue 的响应式 原理:通过 Proxy(Vue3)或 Object.defineProperty(Vue2&#…...

MySQL主从架构

MySQL主从架构 MySQL REPLICATION 在实际生产环境中,如果对数据库的读和写都在一个数据库服务器中操作。无论是在安全性、高可用性,还是高并发等各个方面都是完全不能满足实际需求的,因此,一般来说都是通过主从复制(…...

基于ros2与gazebo的导航仿真案例

文章目录 前言操作1、创建docker容器2、安装ROS23、Gazebo安装4、Nav2安装5、测试 前言 导航的入门小案例 参考: Ubuntu24.04 ROS2 Jazzy Gazebo Harmonic安装教程Docs / Gazebo Harmonic 注意选择版本 ROS 2 documentation 操作 1、创建docker容器 sudo docke…...

《Python实战进阶》专栏 No.3:Django 项目结构解析与入门DEMO

《Python实战进阶》专栏 第3集:Django 项目结构解析与入门DEMO 在本集中,我们将深入探讨 Django 的项目结构,并实际配置并运行一个入门DEMO博客网站,帮助你在 Web 开发中更高效地使用 Django。Django 是一个功能强大的 Python Web…...

基于WebGIS技术的校园地图导航系统架构与核心功能设计

本文专为IT技术人员、地理信息系统(GIS)开发者、智慧校园解决方案架构师及相关领域的专业人士撰写。本文提出了一套基于WebGIS技术的校园地图导航系统构建与优化方案,旨在为用户提供高效、智能、个性化的导航体验。如需获取校园地图导航系统技…...

开源且免费的CMS系统有哪几个可以放心用?

既开源又免费的两全其美的CMS不多见,不过总会存在一些个例,给用户们带来更具有建设性的选择,以下是一些开源免费且值得信赖的CMS系统,可以根据你的需求选择合适的平台: 1、WordPress ▷ 特点:全球最流行的…...

逻辑架构与软件架构在PREEvision中的设计关系

1 Introduction 在如今汽车电子系统的开发过程中,系统架构设计是至关重要的环节。无论是汽车控制系统、信息娱乐系统,还是电动驱动系统,架构设计都决定了整个系统的功能、性能以及后期的可维护性和可扩展性。 在往期文章中,我们…...

DeepSeek vs ChatGPT:AI 领域的华山论剑,谁主沉浮?

一、引言 在当今科技飞速发展的时代,人工智能(AI)已然成为推动各领域变革的核心力量。而在人工智能的众多分支中,自然语言处理(NLP)因其与人类日常交流和信息处理的紧密联系,成为了最受瞩目的领…...

现场可以通过手机或者pad实时拍照上传到大屏幕的照片墙现场大屏电子照片墙功能

现场可以通过手机或者pad实时拍照上传到大屏幕的照片墙现场大屏电子照片墙功能,每个人都可以通过手机实时拍照上传到大屏幕上,同时还可以发布留言内容,屏幕上会同步滚动播放展示所有人的照片和留言。相比校传统的照片直播功能更加灵活方便,而…...

AF3 _process_single_hit 函数解读

AlphaFold3 中templates模块的_process_single_hit函数处理单个 HHsearch 比对的模板 TemplateHit,并从相应的 mmCIF 文件中提取模板特征,返回包含模板位置信息、比对质量等特征的 SingleHitResult 对象。它是 AlphaFold3 在模板模块中生成模板特征结构输入的重要步骤。 源代…...

go 模块管理

go version 查看版本 go version go1.21.12 windows/amd64 需要保证:go的版本升级为1.11以上,go mod依赖的最底版本 go env 查看go的环境变量 go env 开启go mod # 标识开启go的模块管理 set GO111MODULE=on GO111MODULE有三个值:off, on和auto(默认值)。 GO111M…...

23种设计模式 - 命令模式

模式定义 命令模式(Command Pattern)是一种行为型设计模式,它将请求封装为独立对象,使请求的发送者与接收者解耦。通过将操作抽象为命令对象,支持命令的存储、传递、撤销和重做,增强系统的灵活性和可扩展性…...

php-fpm

摘要 php-fpm(fastcgi process manager)是PHP 的FastCGI管理器,管理PHP的FastCGI进程,提升PHP应用的性能和稳定性 php-fpm是一个高性能的php FastCGI管理器,提供了更好的php进程管理方式,可以有效的控制内存和进程,支…...

Visual Studio 2022配置网址参考

代码格式化和清理冗余代码选项的配置: 代码样式选项和代码清理 - Visual Studio (Windows) | Microsoft Learn 调试时传递参数: 调试时传递命令行参数(C) - Visual Studio (Windows) | Microsoft Learn...

【含文档+PPT+源码】基于Django的新闻推荐系统的设计与实现

项目介绍 本课程演示的是一款基于Django的新闻推荐系统的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Python学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.…...

2025年02月21日Github流行趋势

项目名称:source-sdk-2013 项目地址url:https://github.com/ValveSoftware/source-sdk-2013项目语言:C历史star数:7343今日star数:929项目维护者:JoeLudwig, jorgenpt, narendraumate, sortie, alanedwarde…...

后端开发:开启技术世界的新大门

在互联网的广阔天地中,后端开发宛如一座大厦的基石,虽不直接与用户 “面对面” 交流,却默默地支撑着整个互联网产品的稳定运行。它是服务器端编程的核心领域,负责处理数据、执行业务逻辑以及与数据库和其他后端服务进行交互。在当…...

Apache Doris 实现毫秒级查询响应

1. 引言 1.1 数据分析的重要性 随着大数据时代的到来,企业对实时数据分析的需求日益增长。快速、准确地获取数据洞察成为企业在竞争中脱颖而出的关键。传统的数据库系统在处理大规模数据时往往面临性能瓶颈,难以满足实时分析的需求。例如,一个电商公司需要实时监控销售数据…...

【Python项目】基于Python的语音数据及标注核对审核系统

【Python项目】基于Python的语音数据及标注核对审核系统 技术简介: 采用Python技术、MySQL数据库、Django框架等实现。 系统简介: 语音数据及标注核对审核系统是一个基于B/S架构的语音数据处理平台,旨在通过自动化的方式对语音数据进行标…...

路由基本配置

学习目标 • 根据拓扑图进行网络布线。 • 清除启动配置并将路由器重新加载为默认状态。 • 在路由器上执行基本配置任务。 • 配置并激活以太网接口。 • 测试并检验配置。 • 思考网络实施方案并整理成文档。 任务 1:网络布线 使用适当的电缆类型连接网络设备。…...

从WebRTC到EasyRTC:嵌入式适配的视频通话SDK实现低延迟、高稳定性音视频通信

WebRTC最初是为浏览器之间的实时通信设计的,其资源需求和复杂性可能对嵌入式设备的性能提出较高要求,因此在嵌入式系统中应用时面临一些挑战: 1)资源消耗较高 CPU和内存占用:WebRTC是一个功能强大的实时通信框架&…...

【Blender】二、建模篇--05,阵列修改器与晶格形变

阵列修改器是bender里面一个比较常用的修改器,所以我们单独开口来讲,我们会先从几片树叶出发,然后我们用阵列修改器把这几片树叶变成这样的造型和这样的造型。这两个造型分别就代表着阵列修改器最常用的两种偏移方法,我们现在就开始我们先来做几个树叶。 1.树叶建模 首先…...

Python爬虫实战:获取12306特定日期、城市车票信息,并做数据分析以供出行参考

注意:以下内容仅供技术研究,请遵守目标网站的robots.txt规定,控制请求频率避免对目标服务器造成过大压力! 1. 核心思路 需求:获取明天(2025 年 2 月 21 日)从北京到上海的车次、票价、出发时间、硬卧二等卧信息,并保存到 CSV 文件,然后分析出价格最低的 10 趟车次。目…...

C++ 设计模式-策略模式

支付策略 #include <iostream> #include <memory> #include <unordered_map> #include <vector> #include <ctime>// 基础策略接口 class PaymentStrategy { public:virtual ~PaymentStrategy() default;virtual std::string name() const 0;…...

数据结构:哈希表(unordered_map)

unordered_map 是 C 标准库中的一种哈希表实现&#xff0c;它提供了基于键值对&#xff08;key-value&#xff09;的存储&#xff0c;提供了常数时间复杂度的查找、插入和删除键值对的操作。 初始化代码示例&#xff1a; #include <unordered_map> using namespace std…...

鸿蒙-自定义布局-实现一个可限制行数的-Flex

文章目录 前提onMeasureSizeselfLayoutInfoconstraintchildren onPlaceChildren 实现思路属性准备测量组件布局小结 刷新 千呼万唤始出来的自定义布局功能终于可以用了&#xff0c;这就给了我们更多自由发挥创造的空间&#xff0c;不再局限于使用已有组件做组合。当然&#xff…...

安装可视化jar包部署平台JarManage

一、下载 下载地址&#xff1a;JarManage 发行版 - Gitee.com &#x1f692; 下载 最新发行版 下载zip的里面linux和windows版本都有 二、运行 上传到服务器&#xff0c;解压进入目录 &#x1f69a; 执行java -jar jarmanage-depoly.jar 命令运行 java -jar jarmanage-dep…...

1、Window Android 13模拟器 将编译的映像文件导入Android Studio

1、环境准备 编译环境&#xff1a;Ubuntu-18.04.5编译版本&#xff1a;android13-release下载地址&#xff1a;清华大学开源软件镜像站AOSP # 下载repo # 同步代码&#xff1a;repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android13-r…...

力扣27. 移除元素(快慢指针)

Problem: 27. 移除元素 文章目录 题目描述思路Code 题目描述 思路 定义快慢指针均指向数组起始位置&#xff0c;当fast指针指向的元素不等于val时将fast指针指向的元素赋值给slow并让slow指针向前移动&#xff0c;fast指针一直向前移动 时间复杂度: O ( n ) O(n) O(n); 空间复杂…...

Unity学习part4

1、ui界面的基础使用 ui可以在2d和矩形工具界面下操作&#xff0c;更方便&#xff0c;画布与游戏窗口的比例一般默认相同 如图所示&#xff0c;图片在画布上显示的位置和在游戏窗口上显示的位置是相同的 渲染模式&#xff1a;屏幕空间--覆盖&#xff0c;指画布覆盖在游戏物体渲…...

前端面试之Flex布局:核心机制与高频考点全解析

目录 引言&#xff1a;弹性布局的降维打击 一、Flex布局的本质认知 1. 两大核心维度 2. 容器与项目的权力边界 二、容器属性深度剖析 1. 主轴控制三剑客 2. 交叉轴对齐黑科技 三、项目属性关键要点 1. flex复合属性解密 2. 项目排序魔法 四、六大高频面试场景 1. 经…...

关系数据理论

一、函数依赖 若t1(X)t2(X),必有t1(Y)t2(Y),那么我们称属性组X函数确定属性组Y&#xff0c;或者说Y函数依赖于X。记为X->Y&#xff0c;其中X叫决定因素&#xff0c;Y叫依赖因素。 平凡函数依赖与非平凡函数依赖&#xff1a; 二、1-BCNF 评价关系模式“好坏”的理论标准就…...

低代码与开发框架的一些整合[2]

1.分析的项目资源说明 经过近期的的不断分析与运行对比&#xff0c;最终把注意力集中在了以下几个框架&#xff1a; 01.dibootdiboot.diboot: 写的更少, 性能更好 -> 为开发人员打造的低代码开发平台。Mybatis-plus关联查询&#xff0c;关联无SQL&#xff0c;性能高10倍&a…...

网络空间安全(1)web应用程序的发展历程

前言 Web应用程序的发展历程是一部技术创新与社会变革交织的长卷&#xff0c;从简单的文档共享系统到如今复杂、交互式、数据驱动的平台&#xff0c;经历了多个重要阶段。 一、起源与初期发展&#xff08;1989-1995年&#xff09; Web的诞生&#xff1a; 1989年&#xff0c;欧洲…...

Android 之 AIDL for HAL

Android AIDL for HAL 的作用与实现 作用&#xff1a; Android AIDL for HAL&#xff08;Android Interface Definition Language for Hardware Abstraction Layer&#xff09;旨在统一 HAL 开发接口&#xff0c;替代 HIDL&#xff08;Hardware Interface Definition Language…...

Python爬虫基础文件操作

文件操作 引言 爬虫爬取的一切内容都是在内存进行的&#xff0c;这样会有什么问题吗&#xff1f;如果一旦短电或着发生意外电脑关机了那么你的工作成果将瞬间消失。所以&#xff0c;我们还缺少数据在本地文件系统进行持久化的能力&#xff0c;简单的来说就是文件读写操作。文…...