自学内容网 自学内容网

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 一般的成熟生态和功能覆盖。


原文地址:https://blog.csdn.net/yuand7/article/details/143731879

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!