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

langchain学习笔记之langserve服务部署

langchain学习笔记之langserve服务部署

引言

本节将介绍 LangServe \text{LangServe} LangServe服务部署。

LangServe \text{LangServe} LangServe简单介绍

LangServe \text{LangServe} LangServe帮助开发者将langchain可运行的chain部署为REST API,该库底层使用FAST API并使用pydantic进行数据验证。

关于pydantic,它是一个 Python \text{Python} Python中用于数据验证数据解析的第三方库,并且可以从模型中生成 JSON \text{JSON} JSON架构,并提供自动生成文档等功能,从而轻松与其他模型进行集成。

安装过程

  1. 对于客户端服务器 LangServe \text{LangServe} LangServe的安装指令
pip install --upgrade "langserve[all]"

单独对于客户端或者服务器端代码,则执行:

pip install "langchain[client]"
pip install "langchain[server]"
  1. LangChain CLI \text{LangChain CLI} LangChain CLI安装:该工具可以快速启动LangServe项目。安装指令:
pip install -U langchain-cli

安装完毕后,在terminal中输入langchain,可以查看其相关操作:
langchain指令操作
项目路径下,使用指令:

langchain app new [app_name] # app_name 为想要设置的app名称

当前路径下会生成一个文件夹:
使用langchain生成app
接下来,安装pipx:

pip install pipx

pipx添加到环境变量,执行完该操作后,需重启 PyCharm \text{PyCharm} PyCharm

pipx ensurepath

正确的返回结果:

Success! Added C:\Users\dell\.local\bin to the PATH environment variable.Consider adding shell completions for pipx. Run 'pipx completions' for instructions.You will need to open a new terminal or re-login for the PATH changes to take effect. Alternatively, you can source your shell's config file with e.g. 'source ~/.bashrc'.Otherwise pipx is ready to go! ✨ 🌟 ✨

接下来,使用pipx安装poetry

pipx install poetry

值得庆幸的是,pipx同样会使用PyPI作为包的来源,因而可以使用镜像源进行安装。例如:

pipx install poetry -i https://mirrors.aliyun.com/pypi/simple/

正确的返回结果:

installed package poetry 2.0.1, installed using Python 3.10.1These apps are now globally available- poetry.exe
done! ✨ 🌟 

同样,在terminal中输入poetry,可以查看其相关操作:
poetry指令相关操作示例
接下来,使用poetry指令安装相关库。根据上一节使用的 Qwen \text{Qwen} Qwen模型,这里安装的是与 Qwen \text{Qwen} Qwen模型相关的库:
先装着,用不用得到以后再说~

poetry add langchain
poetry add langchain-community
poetry add langchain-core
poetry add dashvector

如果安装成功,刚才安装的APP文件夹中的pyproject.toml文件中,会将安装库的版本显示在内:

[tool.poetry.dependencies]
python = "^3.11"
uvicorn = "^0.23.2"
langserve = {extras = ["server"], version = ">=0.0.30"}
pydantic = ">=2.7.4"
langchain = "^0.3.18"
langchain-community = "^0.3.17"
langchain-core = "^0.3.35"
dashvector = "^1.0.18"

一个小坑:上面部分初始状态下的结果展示如下:

[tool.poetry.dependencies]
python = "^3.11"
uvicorn = "^0.23.2"
langserve = {extras = ["server"], version = ">=0.0.30"}
pydantic = "<2"

其中python版本我们按照它的要求,将当前conda环境内的版本升级到了3.11.11;但在使用poetry安装上述包时,依然出现错误。主要原因是:当前的langchain版本0.3.18与上述pydantic = "<2"产生版本冲突,需要手动将上面的pydantic版本改成与langchain匹配的版本,我这里设置的是pydantic = ">=2.7.4"

设置环境变量:
关于 Qwen \text{Qwen} Qwen模型,依然要导入申请的dashscope-api-key

export DASHSCOPE_API_KEY = "sk-..." # 自行申请的api-key

若将api-key写死在本机中(计算机右键属性,高级系统设置,环境变量,添加api-key),此条可以忽略

启动应用。在terminal中使用poetry执行如下指令:

poetry run langchain serve --port=8000 # 端口号可自行分配

需要注意的是,需要在pyproject.toml所在文件夹位置执行该指令,即上步骤中创建app文件夹的路径内。正确返回结果如下:
poetry启动应用
打开上述链接,得到如下结果:
链接示例
这里包含创建的routes以及相应的功能接口。

示例应用

想要部署一个 Qwen \text{Qwen} Qwen聊天模型,在使用langchain app new [app_name]指令时,在app文件夹中,自动生成一个server.py文件:

from fastapi import FastAPI
from fastapi.responses import RedirectResponse
from langserve import add_routesapp = FastAPI()@app.get("/")
async def redirect_root_to_docs():return RedirectResponse("/docs")# Edit this to add the chain you want to add
add_routes(app, NotImplemented)if __name__ == "__main__":import uvicornuvicorn.run(app, host="0.0.0.0", port=8000)

可以在该界面中对app自身参数信息进行完善。例如:

app = FastAPI(title="langchain server",version="0.1.0",description="A server for running Langchain with FastAPI",
)

对应的效果如下:
app参数调整

调用模型接口实现交互

第一步:在server.py文件中,添加一个routes

llm = Tongyi(model_name="tongyi-7b-chinese",temperature=0.5,max_tokens=100)add_routes(app,llm,path="/tongyi-7b-chinese")

请记住这个path,在创建routes完毕之后,若重新执行server.py或者在terminal执行指令poetry run langchain serve --port=8000,都可以看见一个playgound被生成:
生成playground
进入该路径:http://localhost:8000/tongyi-7b-chinese/playground/可以得到一个在线的基于tongyi-7b-chinese模型的问答系统~
playground
言归正传~ 创建一个client.py文件,代码如下:

from langserve import RemoteRunnablep = 8000
model_loc = "tongyi-7b-chinese"# http://127.0.0.1:8000/docs#/tongyi-7b-chinese/
def get_remote_runnable_url(port_input, model_loc_input):url_output = 'http://localhost:{}/{}/'.format(str(port_input), model_loc_input)return url_outputtongyi = RemoteRunnable(get_remote_runnable_url(port_input=p, model_loc_input=model_loc)
)

引入一个类RemoteRunnable来远程调用模型,这里的model_loc之前add_routes中的path相同。此时变量tongyi可看作是一个模型,在构建chain的过程中,调用RannableMap类对变量进行描述:

from langchain.schema.runnable import RunnableMapchain = prompt | RunnableMap({"tongyi": tongyi}
)

其余部分,如prompt,chain的调用均正常。client.py完整代码如下:

from langchain.schema.runnable import RunnableMap
from langchain_core.prompts import ChatPromptTemplate
from langserve import RemoteRunnablep = 8000
model_loc = "tongyi-7b-chinese"# http://127.0.0.1:8000/docs#/tongyi-7b-chinese/
def get_remote_runnable_url(port_input, model_loc_input):url_output = 'http://localhost:{}/{}/'.format(str(port_input), model_loc_input)return url_outputtongyi = RemoteRunnable(get_remote_runnable_url(port_input=p, model_loc_input=model_loc)
)prompt = ChatPromptTemplate([("system", "你的名字是静静的喝酒,你是一个喜欢做科普的助手"),("user", "简单介绍一下{input},字数限制:200")]
)chain = prompt | RunnableMap({"tongyi": tongyi}
)response = chain.stream({"input": "林徽因"
})
for chunk in response:print(chunk["tongyi"], end="", flush=True)

返回结果如下,通过流式调用stream生成出的结果:

林徽因(1904-1955),原名林徽音,中国著名建筑师、诗人、作家。她出生于浙江杭州,父亲林长民是民国时期的重要官员。林徽因自幼聪慧过人,16岁赴英留学,后转入美国宾夕法尼亚大学学习建筑。她与梁思成共同致力于中国古代建筑的研究和保护工作,参与了多处重要古建筑的考察与测绘。同时她也是中国第一位女性建筑学家,在建筑设计领域有着卓越贡献。林徽因在文学上也有很高造诣,著有散文集《你是人间四月天》等作品,诗文优美动人。她的才华横溢,不仅体现在专业领域,在社交场合也备受尊敬,是中国现代文化史上一位杰出的女性。
Process finished with exit code 0

当然,也可以使用invoke等其他方式进行调用,这里不再展示。

使用 Requests \text{Requests} Requests方式进行交互

相比于使用Runnable调用模型进行交互,还可以使用requests直接进行交互,这种交互方式的特点是:调用部分客户端代码异常简单。仅需要知道url路径以及相应格式的输入即可。创建一个新的文件:client_req.py,分别以invoke调用与stream调用为例:

在此之前,需要在server.py中添加一个新的routes,并创建一个新的path:

prompt = PromptTemplate.from_template("请介绍一下{topic},200字")
add_routes(app,prompt | llm,path="/tongyi-7b-chinese-chain"
)

调用模型接口交互的操作相比,主要区别是:将promptchain的部分交给了server.py去做。

  • invoke调用。对应代码如下:
response_invoke = requests.post(url="http://localhost:8000/tongyi-7b-chinese-chain/invoke",json={"input": {"topic": "林徽因"}}
)

可以发现:url路径中多了\invoke,这是langchain serve提供的接口:
invoke接口
将其展开,可以得到要求输入的格式以及输出格式
输入输出格式
上面的json格式就是基于该输入格式构建的。输入结果也为json格式。基于上述输入,输入结果如下。由于格式已经确定,完全可以获取更精确的信息(例如:只展示output部分),这里不再赘述。

print(response_invoke.json()){'output': '林徽因(1904年6月10日-1955年4月1日),原名林徽音,中国著名建筑师、诗人、作家。她出生于福建闽侯,在文学和建筑领域均有所建树。\n\n林徽因是第一位女性建筑学家,曾参与设计了中华人民共和国国徽和人民英雄纪念碑。她的建筑设计融合了传统与现代元素,独具匠心。同时,她也是新月派诗人群体中唯一的女性成员,著有《你是人间四月天》等脍炙人口的诗作。其作品风格清新婉约,充满灵性,表达了对生活的热爱以及对理想的追求。\n\n林徽因以其卓越才华和独特魅力,在近现代中国文化史上留下了浓墨重彩的一笔。', 'metadata': {'run_id': '093d5777-d19c-4bc5-9b53-d1e508765661', 'feedback_tokens': []}}
  • stream调用:同上,url路径中同样包含\stream接口,以及输入、输出格式。对应代码表示如下:
response_stream = requests.post(url="http://localhost:8000/tongyi-7b-chinese-chain/stream",json={"input": {"topic": "林徽因"}}
)

比较特殊的是,stream调用返回的结果类型是string,在处理数据上,例如:将返回结果有效信息提取出来,需要消耗一些代码:

for l in response_stream.iter_lines():line = l.decode("utf-8")if line.startswith("data:"):if "run_id" in line:continueelse:print(line[len("data: ") + 1:-1], end="", flush=True)

返回结果如下:

林徽因(1904610日-195541日),原名林徽音,中国著名建筑师、诗人、作家。她出生于福建闽侯,成长于一个书香门第,自幼聪慧过人。1920年随父游历欧洲,深受西方文化影响。1924年赴美留学,主修建筑学,后与梁思成结为夫妇,共同致力于中国古代建筑的研究和保护。\n\n林徽因不仅在建筑领域成就斐然,还是一位才华横溢的文学家。她的诗歌清新脱俗,散文优美动人,代表作有《你是人间四月天》等。此外,她积极参与社会活动,为中国古代建筑艺术的传承与发展做出了重要贡献。林徽因的一生短暂而辉煌,她的思想和作品至今仍被广泛传颂。

client_req.py完整代码如下:

import requests
import json# invoke_method
response_invoke = requests.post(url="http://localhost:8000/tongyi-7b-chinese-chain/invoke",json={"input": {"topic": "林徽因"}}
)
print(response_invoke.json())# stream_method
response_stream = requests.post(url="http://localhost:8000/tongyi-7b-chinese-chain/stream",json={"input": {"topic": "林徽因"}}
)print("stream result..")
# 只是一个相应结果,200表示成功;422表示失败
print(response_stream)for l in response_stream.iter_lines():line = l.decode("utf-8")if line.startswith("data:"):if "run_id" in line:continueelse:print(line[len("data: ") + 1:-1], end="", flush=True)

一个小坑:若修改client_req.py文件(例如修改topic或者其他地方)后再执行代码时,可能出现这样的错误:

requests.exceptions.ChunkedEncodingError: Response ended prematurely

观察一下langchain serve的执行情况:
langchain serve bug
报错的最终原因是:client_req.py存在修改,并重新加载;从而导致ASGI可调用对象返回但未完成响应。再执行一次就好了~

综上,两种交互方式介绍完毕。两者各有特色:

  • 模型调用交互:仅使用Runnable远程调用模型,如prompt,chain需要client自己构建,但这些步骤偏向简单,调用相关类就可以了;
  • request交互:仅需要知晓url以及数据输入格式即可;但输出格式需要手动处理(invokestream等其他调用方式),比较乐观的是,输出格式也是确定的,在langchain serve中的相应接口中可以查到;上面的小坑也只有在request交互中出现,因为每一次修改代码,都会影响langchain serve的执行,但模型调用交互不会出现这种情况原因是:修改代码并不影响模型的调用,除非去修改模型- -~

个人更偏向于模型调用交互

附: server.py \text{server.py} server.py完整代码

至此,代码就齐了,大家一起努力呀~

from fastapi import FastAPI
from langchain_community.llms import Tongyi
from fastapi.responses import RedirectResponse
from langchain_core.prompts import ChatPromptTemplate, PromptTemplate
from langserve import add_routesapp = FastAPI(title="langchain server",version="0.1.0",description="A server for running Langchain with FastAPI",
)llm = Tongyi(model_name="tongyi-7b-chinese",temperature=0.5,max_tokens=100,)@app.get("/")
async def redirect_root_to_docs():return RedirectResponse("/docs")# Edit this to add the chain you want to add
add_routes(app,llm,path="/tongyi-7b-chinese"
)prompt = PromptTemplate.from_template("请介绍一下{topic},200字")
add_routes(app,prompt | llm,path="/tongyi-7b-chinese-chain"
)if __name__ == "__main__":import uvicornuvicorn.run(app, host="0.0.0.0", port=8000)

相关文章:

langchain学习笔记之langserve服务部署

langchain学习笔记之langserve服务部署 引言 LangServe \text{LangServe} LangServe简单介绍安装过程示例应用调用模型接口实现交互使用 Requests \text{Requests} Requests方式进行交互 附&#xff1a; server.py \text{server.py} server.py完整代码 引言 本节将介绍 LangSe…...

Docker安装分布式vLLM

Docker安装分布式vLLM 1 介绍 vLLM是一个快速且易于使用的LLM推理和服务库&#xff0c;适合用于生产环境。单主机部署会遇到显存不足的问题&#xff0c;因此需要分布式部署。 分布式安装方法 https://docs.vllm.ai/en/latest/serving/distributed_serving.html2 安装方法 …...

Java SpringBoot的ProblemDetail实现全局异常统一处理让接口不在需要catch/ProblemDetail实现错误处理的标准化

在开发 Web 应用时&#xff0c;有效的错误处理和响应是提升用户体验和系统健壮性的关键。Spring Boot 3.2 引入了对 ProblemDetail 的更好支持&#xff0c;使得错误处理更加标准化和便捷。本文将通过实战演示&#xff0c;带你深入了解如何在 Spring Boot 3.2 中使用 ProblemDet…...

PHP 基础介绍

PHP 学习资料 PHP 学习资料 PHP 学习资料 PHP 是一种广泛使用的开源服务器端脚本语言&#xff0c;尤其适合 Web 开发&#xff0c;能轻松嵌入 HTML 中&#xff0c;生成动态网页内容。接下来&#xff0c;让我们一起了解 PHP 的基础内容。 一、PHP 的安装与配置 在开始编写 PH…...

CI/CD部署打包方法

项目目前部署方式&#xff1a; 各地区服务器打包同一个runner&#xff08;需要互相排队&#xff0c;不并发&#xff09;各地区客户端可以并发打包&#xff0c;同个地区客户端打多个包需要排队 部署方法 下载gitlab-runner&#xff1a; https://docs.gitlab.com/runner/insta…...

Unity-Mirror网络框架-从入门到精通之PlayerTest示例

文章目录 前言示例介绍PlayerReliable,PlayerUnreliable,PlayerHybrid区别PlayerControllerRB和PlayerController区别最后前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。本系列文章将为读者提供对Mirror网络框架的深入了解,涵盖从基础到高级的多个主…...

C++ 设计模式-抽象工厂

C中的抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;它提供了一个接口&#xff0c;用来创建一系列相关或相互依赖的对象&#xff0c;而无需指定它们具体的类。通过抽象工厂模式&#xff0c;客户端可以通过工厂接口获取一系列产…...

ONES 功能上新|ONES Copilot、ONES TestCase、ONES Wiki 新功能一览

ONES Copilot 支持基于当前查看的工作项相关信息&#xff0c;利用 AI 模型&#xff0c;在系统中进行相似工作项的查找&#xff0c;包括基于已关联工作项的相似数据查找。 应用场景&#xff1a; 在查看工作项时&#xff0c;可利用 AI 模型&#xff0c;基于语义相似度&#xff0c…...

Jenkins | Jenkins安装

Jenkins安装 一、前置准备二、启动三、登录 一、前置准备 下载安装包 war包 下载地址: https://www.jenkins.io/ 安装jdk 要求jdk11版本以上 集成maven项目的话 需要有maven 与 git 二、启动 启动命令 需要注意使用jdk11以上的版本 /usr/java/jdk17/bin/java -Xms2048m -X…...

JavaScript设计模式 -- 观察者模式

在实际开发中&#xff0c;经常会遇到这样一种需求&#xff1a;当某个对象状态发生改变时&#xff0c;需要自动通知并更新其他相关对象。观察者模式&#xff08;Observer Pattern&#xff09;正是为了解决这一问题而设计的&#xff0c;它定义了一种一对多的依赖关系&#xff0c;…...

DeepSeek AI 满血版功能集成到WPS或Microsoft Office中

DeepSeek AI集成到 WPS或Microsoft Office中, 由于deepseek被攻击或者非常繁忙导致超时的服务器&#xff0c;所以可以用硅基流动部署的DeepSeek 。当然用官网的也可以。 使用 OfficeAI 插件集成(wps为例)&#xff1a; 下载并安装 OfficeAI 插件&#xff1a;从可靠的软件下载平台…...

单调队列与栈

一.题 1. 思路&#xff1a; 构建小压大的单调递减栈&#xff0c;对于每个栈的元素都进行处理并加到结果上 class Solution { public:int sumSubarrayMins(vector<int>& arr) {int stk[10000000],top 0;long long ans 0;for(int i 0;i<arr.size();i){while(top…...

阿里云sls查询两种查询方式学习:SQL查询和SPL 查询

一、阿里云日志服务 SPL 语法归纳 1. SPL 简介 SPL&#xff08;Search Processing Language&#xff09;用于查询和处理日志数据&#xff0c;支持检索、过滤、分析日志。 2. 基本查询语法 查询所有日志&#xff1a;* 条件过滤&#xff1a;response_status: error 多条件查…...

【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析①】

ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase01 作者&#xff1a;车端域控测试工程师 更新日期&#xff1a;2025年02月14日 关键词&#xff1a;UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023 TC10-001测试用例 用例ID测试场景验证要点参考条款预期…...

从技术债务到架构升级,滴滴国际化外卖的变革

背 景 商家营销简述 在外卖平台的运营中&#xff0c;我们致力于通过灵活的补贴策略激励商家&#xff0c;与商家共同打造良好的合作关系&#xff0c;也会提供多样化的营销活动&#xff0c;帮助商家吸引更多用户下单。通过这些活动&#xff0c;不仅能够提高商家的销量&#xff0c…...

第J2周:ResNet50V2算法实战与解析

文章目录 一、准备工作1.设置GPU2.导入数据3.查看数据 二、数据预处理1.加载数据2.可视化数据 总结 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、准备工作 1.设置GPU import tensorflow as tf gpus …...

如何使用 HPjtune 分析 Java GC 日志并优化 JVM 性能

HPjtune 是一款用于分析 Java 应用程序垃圾回收&#xff08;GC&#xff09;日志的工具&#xff0c;主要用于优化 JVM 性能。虽然 HPjtune 本身并不直接生成 HTML 格式的报告&#xff0c;但可以通过结合其他工具或方法将分析结果导出为 HTML 格式。以下是实现这一目标的步骤和方…...

【MySQL在Centos 7环境安装】

文章目录 一. 卸载不必要的环境二. 检查系统安装包三. 卸载这些默认安装包四. 获取mysql官⽅yum源五. 安装mysql yum 源&#xff0c;对⽐前后yum源六. 看看能不能正常⼯作七. 安装mysql服务八. .查看配置⽂件和数据存储位置九. 启动服务并查看服务是否存在十. 登陆⽅法十一. 设…...

PostgreSQL技术内幕25:时序数据库插件TimescaleDB

文章目录 0.简介1.基础知识1.1 背景1.2 概念1.3 特点 2.TimescaleDB2.1 安装使用2.1 文件结构2.2 原理2.2.1 整体结构2.2.2 超表2.2.3 自动分区2.2.4 数据写入与查询优化2.2.5 数据保留策略2.2.6 更多特性 0.简介 现今时序数据库的应用场景十分广泛&#xff0c;其通过保留时间…...

Flask Web开发的重要概念和示例

一口气列举Flask Web应用的所有概念和示例 Flask Web 应用基本框架 路由(Routing) 模版(Template) request 对象 JSON 数据处理 redirect 示例 文件上传示例 文件下载示例 Session 示例 Cookie操作 Flask Web 应用基本框架 这是一个 最基础的 Flask Web 应用,…...

使用pocketpal-ai在手机上搭建本地AI聊天环境

1、下载安装pocketpal-ai 安装github的release APK 2、安装大模型 搜索并下载模型&#xff0c;没找到deepseek官方的&#xff0c;因为海外的开发者上传了一堆乱七八糟的deepseek qwen模型&#xff0c;导致根本找不到官方上传的……deepseek一开源他们觉得自己又行了。 点击之…...

后台终端方法

使用tmux实现终端后台运行 首先&#xff0c;在Linux系统上安装tmux sudo apt install tmux使用方法&#xff1a; 创建终端 #直接创建 tmux #自定义名称 tmux new -s {name}退出tmux终端&#xff1a;Ctrlb 之后 d 退出后查看后台终端&#xff1a; tmux ls abc: 1 windows (cr…...

为什么vue3需要对引入的组件使用markRaw?

在Vue 3中&#xff0c;对引入的组件使用markRaw的主要原因是为了避免Vue的响应式系统对该组件实例进行不必要的代理和追踪。Vue 3的响应式系统是基于Proxy实现的&#xff0c;它会对数据进行代理以追踪其变化&#xff0c;并在数据变化时自动更新视图。然而&#xff0c;在某些情况…...

AWS上基于Llama 3模型检测Amazon Redshift里文本数据的语法和语义错误的设计方案

一、技术栈选型 核心服务&#xff1a; Amazon Redshift&#xff1a;存储原始文本和检测结果Amazon Bedrock&#xff1a;托管Llama 3 70B模型AWS Lambda&#xff1a;无服务计算&#xff08;Python运行时&#xff09;Amazon S3&#xff1a;中间数据存储AWS Step Functions&…...

深度学习-114-大语言模型应用之提示词指南实例DeepSeek使用手册(三)

文章目录 1 提示词指南1.1 生成模型提示词1.2 角色扮演1.3 文案大纲生成1.4 情景续写1.5 宣传标语生成1.6 中英翻译专家1.7 诗歌创作1.8 结构化输出1.9 内容分类1.10 散文写作1.11 代码生成1.12 代码改写1.13 代码解释2 不同类型的提示词2.1 营销推广类(5个)2.2 内容创作类(24个…...

Springboot_实战

项目开发 lombok使用 自动为实体类提供get、set、toString方法 引入依赖 实体类上添加注解 统一响应结果 注意要写get、set方法&#xff1b;下面是错误的&#xff0c;因此要加上Data注解 一个注册的接口的示例 Controller层 Service层 Mapper层 参数校验 但是同样存在一…...

【第5章:深度生成模型— 5.4 深度生成模型前沿全景:从Diffusion到多模态,揭秘AI生成技术的未来】

生成模型正在经历一场前所未有的革命!从震惊AI圈的DALLE 2到刷屏朋友圈的Stable Diffusion,这些模型展现出的创造力已经突破了我们的想象边界。今天,我们就来一场深度探索之旅,揭开生成模型最前沿研究的神秘面纱,看看AI生成技术的未来会走向何方。 (本文包含大量前沿技术…...

【微服务学习二】nacos服务发现与负载均衡

nacos服务发现 想要开启服务发现&#xff0c;需要在main函数上添加 EnableDiscoveryClient 注解 然后我们编写一个controller类来查询nacos中注册的所有微服务以及对应的ip端口号 Controller public class DiscoveryController {AutowiredDiscoveryClient discoveryClient;//…...

信息安全管理(3):网络安全

1 网络的定义和特征 1.1 网络的定义 &#xff08;根本懒得说。。你们自己wiki吧&#xff09; 网络的用处 What is a network…Devices in a network…LAN, WAN and InternetworksWhat do networks do for you… Sharing resourcesUse/share applications 1.2 网络的特征 C…...

如何设置linux系统时间?

在 Linux 系统中&#xff0c;可以通过不同的方法来设置系统时间&#xff0c;下面详细介绍几种常见的方式。 目录 方法一&#xff1a;使用date命令手动设置时间 方法二&#xff1a;同步硬件时钟&#xff08;BIOS 时钟&#xff09; 方法三&#xff1a;使用timedatectl命令设置…...

ceph部署-14版本(nautilus)-使用ceph-ansible部署实验记录

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、环境信息二、部署步骤2.1 基础环境准备2.2 各节点docker环境安装2.3 搭建互信集群2.4 下载ceph-ansible 三、配置部署文件3.1 使用本地docker3.2 配置hosts…...

几款C#开发的入门书籍与视频教程

以下是几本适合C#初学者的书籍和一些优质的视频教程推荐&#xff0c;帮助你快速入门C#开发&#xff1a; 书籍推荐 1. 《C#入门经典》 • 作者&#xff1a;Karli Watson, Christian Nagel 等 • 特点&#xff1a;经典的C#入门书籍&#xff0c;内容全面&#xff0c;从基础语法到…...

XZ_Mac电脑上本地化部署DeepSeek的详细步骤

根据您的需求&#xff0c;以下是Mac电脑上本地化部署DeepSeek的详细步骤&#xff1a; 一、下载并安装Ollama 访问Ollama官网&#xff1a; 打开浏览器&#xff0c;访问 Ollama官网。 下载Ollama&#xff1a; 在官网中找到并点击“Download”按钮&#xff0c;选择适合Mac系统的…...

el-input输入框样式修改

el-input输入框样式修改 目的&#xff1a;蓝色边框去掉、右下角黑色去掉(可能看不清楚) 之前我试过deep不行 最有效的办法就是就是在底部添加一下css文件 代码中针对input的type为textarea&#xff0c;对于非textarea&#xff0c;只需将下面的css样式中的textarea替换成input…...

Promise的三种状态

目录 代码示例 HTML JavaScript 代码&#xff1a; 代码解释 总结 在 JavaScript 中&#xff0c;Promise 是一种异步编程的解决方案&#xff0c;它用于表示异步操作的最终完成&#xff08;或失败&#xff09;及其结果值。Promise 主要有三种状态&#xff1a; Pending&#…...

探秘AES加密算法:多种Transformation全解析

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

Python深度学习代做目标检测NLP计算机视觉强化学习

了解您的需求&#xff0c;您似乎在寻找关于Python深度学习领域的代做服务&#xff0c;特别是在目标检测、自然语言处理&#xff08;NLP&#xff09;、计算机视觉以及强化学习方面。以下是一些关于这些领域的概述以及寻找相关服务的建议。 1. Python深度学习代做概述 目标检测&…...

10款视频无损压缩软件介绍(deepseek汇总)

在如今这个视频创作与分享盛行的时代&#xff0c;大家时常面临视频文件过大、占空间多、传输不便的困扰。无损压缩软件就能帮上大忙&#xff0c;既能缩减视频体积&#xff0c;又能保证画质不受损。下面就给大家详细介绍 10 款好用的视频无损压缩软件。 视频无损压缩工具一&…...

rv1103b编译opencv

opencv-3.4.16&#xff0c;png的neon会报错&#xff0c;如果想开可以参考 https://blog.csdn.net/m0_60827485/article/details/137561429 rm -rf build mkdir build cd build cmake -DCMAKE_BUILD_TYPERELEASE \ -DCMAKE_C_COMPILERxxx/arm-rockchip831-linux-uclibcgnueabih…...

细胞计数专题 | LUNA-FX7™新自动对焦算法提高极低细胞浓度下的细胞计数准确性

现代细胞计数仪采用自动化方法&#xff0c;在特定浓度范围内进行细胞计数。其上限受限于在高浓度条件下准确区分细胞边界的能力&#xff0c;而相机视野等因素则决定了下限。在图像中仅包含少量可识别细胞或特征的情况下&#xff0c;自动对焦可能会失效&#xff0c;从而影响细胞…...

C++ 中的继承与派生

在 C 中&#xff0c;继承与派生是面向对象编程的重要特性&#xff0c;它们允许创建新类&#xff08;派生类&#xff09;来复用现有类&#xff08;基类&#xff09;的属性和方法&#xff0c;同时还能添加新的功能或修改现有功能&#xff0c;下面为你详细介绍。 基本概念 继承&…...

数据结构:哈夫曼树

1.概念 哈夫曼树&#xff08;Huffman Tree&#xff09;是一种用于数据压缩的二叉树&#xff0c;由大卫哈夫曼&#xff08;David A. Huffman&#xff09;于1952年提出。它通过构建最优二叉树来实现数据的高效压缩&#xff0c;广泛应用于文件压缩、图像压缩等领域。 哈夫曼树的…...

2025年 Java 面试八股文

第一章-Java基础篇 1. Java中的基本数据类型有哪些&#xff1f;⭐ Java中有8种基本数据类型&#xff08;Primitive Types&#xff09;&#xff0c;分别是&#xff1a; byte&#xff1a;8位&#xff0c;-128 ~ 127short&#xff1a;16位&#xff0c;-32,768 ~ 32,767int&…...

Linux 内核 IPoIB 驱动中 sysfs 属性冲突问题的分析与解决

一、引言 在 Linux 内核的设备驱动开发中,sysfs 文件系统是一种重要的机制,用于向用户空间暴露内核对象的属性信息。通过 sysfs,用户空间程序可以读取或修改设备的属性,从而实现对硬件设备的监控和配置。然而,在实际开发中,可能会遇到 sysfs 属性冲突的问题,特别是在复…...

深度学习框架探秘|TensorFlow vs PyTorch:AI 框架的巅峰对决

在深度学习框架中&#xff0c;TensorFlow 和 PyTorch 无疑是两大明星框架。前面两篇文章我们分别介绍了 TensorFlow&#xff08;点击查看&#xff09; 和 PyTorch&#xff08;点击查看&#xff09;。它们引领着 AI 开发的潮流&#xff0c;吸引着无数开发者投身其中。但这两大框…...

鸿蒙Harmony-UIAbility内状态-LocalStorage详细介绍

鸿蒙Harmony-UIAbility内状态-LocalStorage详细介绍 1.1 Localstorage的概念 LocalStorage是页面级的UI状态存储&#xff0c;通过Entry装饰器接收的参数可以在页面内共享同一个LocalStorage实例&#xff0c;LocalStorage也可以在UIAbility内&#xff0c;页面间共享状态 1.2 Lo…...

Mysql中使用sql语句生成雪花算法Id

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…...

android的第一个app项目(java版)

一.学习java重要概念 java的基本类型的语言方法和C语言很像&#xff0c;这都是我们要学的东西和学过的东西。那些基础东西&#xff0c;就不和大家讨论了&#xff0c;一起看一下java的一些知识架构。 1.封装 封装是面向对象编程中的一个核心概念&#xff0c;它涉及到将数据和操…...

第6章 6.2使用ASP.NET Core 开发WebAPI ASP.NET Core Web API

6.2.1 Web API项目的搭建 进入VS&#xff0c;【创建新项目】&#xff0c;选择【ASP.NET Core Web API】模板&#xff0c;【下一步】&#xff0c;编辑项目名称及项目位置&#xff0c;【下一步】&#xff0c;选择框架&#xff0c;其他选项默认即可&#xff0c;【创建】。 进入项…...

常见的网络协议汇总(涵盖了不同的网络层次)

网络层协议 IP协议&#xff1a;IP指网际互连协议&#xff08;Internet Protocol&#xff09;&#xff0c;是TCP/IP体系中的网络层协议。IP协议包括IPv4和IPv6&#xff0c;用于为数据包提供源地址和目标地址&#xff0c;从而实现网络通信。ICMP协议&#xff1a;ICMP&#xff08…...