python+LLM技术栈的介绍-后端

Django

  • Django 是一个基于 Python 编写的开源 Web 应用框架
  • 最初由 Adrian Holovaty 和 Simon Willison 于 2003 年开发,旨在简化 Web 开发流程。
  • Django 采用 MVC(Model-View-Controller)设计模式,但在 Django 中通常称为 MVT(Model-View-Template),其中模型(Model)负责数据操作,视图(View)处理业务逻辑,模板(Template)用于生成用户界面。

主要功能

Django 提供了一系列强大的功能,包括:

  1. 对象关系映射(ORM) :允许开发者以面向对象的方式操作数据库,无需编写 SQL 语句。
  2. 内置管理界面:自动生成管理界面,方便开发者管理数据。
  3. 模板系统:提供灵活的模板语言,支持模板继承和过滤器。
  4. URL 分派:通过 URLconf 将 URL 映射到视图函数。
  5. 表单处理:内置表单框架,简化表单的创建和验证。
  6. 缓存系统:支持多种缓存策略,提高应用性能。
  7. 安全性:内置多种安全防护机制,如用户认证、会话管理等。

生态系统

Django 拥有活跃的开发者社区和丰富的文档资源,支持多种数据库(如 MySQL、PostgreSQL、SQLite 和 Oracle),并且兼容 WSGI 和 FastCGI 服务器。此外,Django 生态系统还包括大量的第三方库和插件,可以扩展框架的功能。

与Django类似的框架还有:Flask(轻量级)、Tornado 等。

Gunicorn WSGI

上面说到 Django 兼容 WSGI, 这又是什么概念呢?

  • WSGI(Web Server Gateway Interface)是一种通用的接口规范,旨在将Web服务器(如Apache、Nginx)与Web应用程序(或Web应用框架)解耦并重新连接起来。
  • 尽管WSGI本身并不强制实现RESTful原则,但它为实现RESTful Web服务提供了基础。
  • Gunicorn是一个高性能的Python WSGI HTTP服务器,主要用于运行Python Web应用程序。
  • 它源自Ruby的Unicorn项目,并采用了预分叉(pre-fork)工作模型,这意味着在请求到来之前,主进程会预先创建多个工作进程来处理请求。
  • Gunicorn能够与多种Web框架如DjangoFlask无缝集成,广泛应用于生产环境中,提供高并发处理能力。

Gunicorn的功能

  1. 高性能:通过多进程模型提高并发处理能力,适用于高并发场景。
  2. 兼容性:遵循 WSGI 标准,可以与大多数Python Web框架兼容。
  3. 简单易用:配置和部署相对简单,文档丰富,适合快速部署。
  4. 资源消耗轻:作为纯Python实现,资源消耗较低,适合快速原型开发。

Celery

  • Celery 是一个基于 Python 开发的分布式任务队列系统。
  • 主要用于处理异步任务和定时任务。它通过消息中间件(Broker)接收和发送任务消息,并将任务分配给多个工作节点(Worker)执行,从而实现任务的异步处理和分布式调度。
  • 消息中间件(Broker)、**任务执行单元(Worker)结果存储(Backend)**组成。
  • Celery 可以与 Django、Pyramid、Tornado 等 Web 框架无缝集成,提供任务调度和管理功能。
  • 支持其他消息中间件如MongoDB。

功能生态

Celery 的主要功能包括:

  1. 异步任务处理:可以将耗时的操作任务提交给 Celery 异步执行,例如发送邮件、消息推送、音频处理等。
  2. 定时任务调度:支持设置定期执行的任务,如每天定时执行爬虫爬取指定内容。
  3. 高并发处理:适用于需要快速响应和高并发任务处理的场景,如 Web 应用中的用户请求处理、数据处理引擎等。
  4. 任务结果存储:支持多种结果存储方式,如 Redis、RabbitMQ、MongoDB 等,以便查询和管理任务结果。

在 Python 生态中,还有一些与 Celery 类似的异步任务处理工具:RQ (Redis Queue) 、LuigiFabric等。

Swagger

  • Swagger(现称为OpenAPI)通过提供一个统一的框架来定义、生成和测试API。
  • 用于生成、描述、调用和可视化RESTful Web服务。
  • Swagger主要用于定义和生成API文档,而Gunicorn是一个服务器,用于运行和处理这些API的请求。
  • Gunicorn与Swagger没有直接关系。

主要功能

  1. 自动生成 API 文档:Swagger 可以根据代码自动生成详细的 API 文档,确保文档与代码同步更新,减少人工维护的负担。
  2. 功能测试:Swagger 提供了在线测试环境,允许开发者直接在浏览器中测试 API 端点的功能和性能。
  3. 代码生成:Swagger Codegen 可以根据规范生成不同编程语言的客户端 SDK 和服务器端代码,支持多种框架如 Spring Boot、Flask 和 Django
  4. 可视化工具:Swagger UI 提供了美观的 API 文档界面,方便开发者查看和使用 API。

LangChain

LangChain和LlamaIndex都用于构建和管理LLMs+应用的工具,但它们在设计和功能上有所不同。

LangChain

  • 模块化和灵活性:LangChain提供了一个模块化的框架,允许开发者构建各种NLP应用程序。
  • 链式架构:LangChain的核心是其链式架构,它允许开发者将不同的组件(如模型、提示、索引、记忆等)组合成一个处理流程。
  • 多语言模型支持:LangChain支持集成多种语言模型,包括但不限于GPT、BERT等。
  • API丰富:提供了一系列API,方便开发者进行调用和扩展。

LlamaIndex

  • 搜索和检索:LlamaIndex在搜索和检索任务方面表现出色。
  • 数据索引:LlamaIndex是一个基于向量搜索的索引框架,主要用于提升大型语言模型在长文本或大量数据上的查询效率。
  • 信息组织:通过索引,LlamaIndex能够更好地组织和呈现信息。
  • 快速检索:LlamaIndex的索引化处理大大加快了信息检索的速度。

Ollama

Ollama支持在本地运行大型语言模型,不发送私有数据到第三方服务,提供了一个简单的命令行界面(CLI)以及一个REST API,用于与应用程序交互。

它相当于大模型界的 Docker,但是运行在本地,有 pull,run ,push 等命令,还可以打包创建新的模型文件,允许用户自定义模型参数,对模型进行个性化适配提供了支持。

目前 Ollama 还没有达到 Docker 一般的成熟生态和功能覆盖。

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

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

相关文章

万字长文分析函数式编程

目录 一.认识函数式编程 一、函数式编程的定义 二、函数式编程的思想 三、函数式编程的特点 四、函数式编程的应用 二.Lambda表达式 三.Stream流 3.1 创建流对象 3.2 注意事项 3.3 Stream流的中间操作 filter map distinct sorted limit skip flatMap 3.4 St…

移植 AWTK 到 纯血鸿蒙 (HarmonyOS NEXT) 系统 (8) - 原生输入法

AWTK 在嵌入式平台使用内置的输入法,在移动设备上使用系统的原生输入法。在 AWTK-Android 和 AWTK-IOS 中,使用的是 SDL 封装之后的系统原生输入法。在 AWTK-HarmonyOS 中,要使用系统的原生输入法。需要实现 input_method 接口: 1…

【解决】Layout 下创建槽位后,执行 Image 同步槽位位置后表现错误的问题。

开发平台:Unity 6.0 编程语言:CSharp 编程平台:Visual Studio 2022   一、问题背景 | 开发库存系统 图1 位置同步失败问题 图2 位置正常同步效果表现 黑框 作用于 UnityEngine.UI.GridLayoutGruop,形成 4x6 布局,如…

【Jenkins实战】Windows安装服务启动失败

写此篇短文,望告诫后人。 如果你之前装过Jenkins,出于换域账号/本地帐号的原因想重新安装,你大概率会遇上一次Jenkins服务启动失败提示: Jenkins failed to start - Verify that you have sufficient privileges to start system…

免费,WPS Office教育考试专用版

WPS Office教育考试专用版,不仅满足了考试需求,更为教育信息化注入新动力。 https://pan.quark.cn/s/609ef85ae6d4

94个属于一区且接受医工交叉领域投稿的期刊汇总|个人观点·24-11-13

小罗碎碎念 继汇总病理AI的基础模型、病理组学&影像组学的公开数据集以后,我们再来盘一盘医工交叉领域有哪些热门期刊可以投稿。我会分区进行介绍,每个区则会进一步划分学科种类,方便大家选择适合自己的投稿期刊。 这期推文先分享大类属…

【插件】重复执行 pytest-repeat

安装 pip3 install pytest-repeat 用法 1.命令行 pytest --count num pytest --count 32.装饰器 pytest.mark.repeat(num) #num运行次数 pytest.mark.repeat(5)#执行结果如下:

el-table合并单元格之后,再进行隔行换色的且覆盖表格行鼠标移入的背景色的实现

el-table 中有现成的隔行换色功能,只要增加 stripe 属性即可。但是如果有单元格合并的话,这个属性就不可用了。这时候我们就需要动点小心思了。 基于相同字段进行合并 单元格合并:基于表头中的某一列,具有相同值的个数相加进行合…

【小白玩NAS】PVE硬盘直通

简介 在DAS架构中,硬盘(NvMe除外)通过硬盘控制器连接并由其管理。因此,如果将硬盘控制器直通到虚拟机,控制器下的所有硬盘也会间接直通至虚拟机。这样一来,虚拟机内会将这些硬盘视为物理磁盘,并…

IBM 开源的文档转化利器「GitHub 热点速览」

上周的热门开源项目,Star 数增长犹如坐上了火箭,一飞冲天。短短一周就飙升了 6k Star 的多格式文档解析和导出神器 Docling,支持库和命令行的使用方式。全新的可视化爬虫平台 Maxun,则在刚开源时便轻松斩获了 4k Star。而本地优先…

[2024最新] java八股文实用版(附带原理)---java集合篇

介绍一下常见的list实现类? ArrayList 线程不安全,内部是通过数组实现的,继承了AbstractList,实现了List,适合随机查找和遍历,不适合插入和删除。排列有序,可重复,当容量不够的时候…

windows工具 -- 使用rustdesk和云服务器自建远程桌面服务, 手机, PC, Mac, Linux远程桌面 (简洁明了)

目的 向日葵最先放弃了, todesk某些功能需要收费, 不想用了想要 自己搭建远程桌面 自己使用希望可以电脑 控制手机分辨率高一些 原理理解 ubuntu云服务器配置 够买好自己的云服务器, 安装 Ubuntu操作系统 点击下载 hbbr 和 hbbs 两个 deb文件: https://github.com/rustdesk/…

GIC寄存器介绍

往期内容 本专栏往期内容,interrtupr子系统: 深入解析Linux内核中断管理:从IRQ描述符到irq domain的设计与实现Linux内核中IRQ Domain的结构、操作及映射机制详解中断描述符irq_desc成员详解Linux 内核中断描述符 (irq_desc) 的初始化与动态分…

排序算法 - 冒泡

文章目录 1. 冒泡排序1.1 简介1.2 基本步骤:1.3 示例代码(C)1.4 复杂度分析1.5 动画展示 1. 冒泡排序 1.1 简介 冒泡排序(Bubble Sort)是一种简单的排序算法,其基本思想是通过相邻元素的比较和交换&#…

【机器学习】机器学习中用到的高等数学知识-2.概率论与统计 (Probability and Statistics)

概率分布:理解数据的分布特征(如正态分布、伯努利分布、均匀分布等)。期望和方差:描述随机变量的中心位置和离散程度。贝叶斯定理:用于推断和分类中的后验概率计算。假设检验:评估模型的性能和数据显著性。…

解决虚拟机未被自动分配ip

文章目录 1. 背景2. 解决步骤 1. 背景 从vulnhub下载的靶场文件,网络适配器模式设置为nat模式之后,启动虚拟机之后发现没有成功分配动态ip。推测是虚拟机分配的网卡名称和原先靶机作者设置网络配置文件 网络接口名称不一致导致。 2. 解决步骤 解决办法就…

人力资源招聘系统的革新之路:从传统到智能的转变

在全球化与数字化交织的今天,企业间的竞争日益激烈,而人才作为企业发展的核心驱动力,其重要性不言而喻。传统的人力资源招聘方式,如依赖纸质简历、人工筛选、面对面面试等,不仅效率低下,且难以精准匹配企业…

vue3入门和实战-vue3项目实现网址导航效果

文章目录 前言一、静态文件引入1. 下载webstack代码2. css调整3. js文件调整4.json数据文件二、项目布局和文件布局调整src/router/index.tssrc/views/Layout/LayoutIndex.vuesrc/views/Layout/IndexComponents/LayoutLeft.vuesrc/views/Home/Home.vuesrc/views/Home/component…

释放 PWA 的力量:2024 年的现代Web应用|React + TypeScript 示例

在2024年的Web开发领域,PWA(Progressive Web Apps)已经成为一个不可忽视的技术趋势。这篇文章将探讨PWA的最新发展,并通过实例展示如何构建一个现代PWA应用。 PWA的本质与优势 PWA本质上是一种将Web应用提升到接近原生应用体验的技…

el-form el-table 前端排序+校验+行编辑

一、页面 <template><div class"bg" v-if"formData.mouldData?.length 0">当前暂无模板&#xff0c;点击<view class"add" click"addMould">立即创建</view></div><div v-else><el-col :x…