使用 LangChain 构建 LLM 应用详细教程(附python代码演练)

介绍

欢迎来到语言处理的未来!在一个语言是连接人与技术的桥梁的世界中,自然语言处理(NLP)的进步为我们带来了令人难以置信的机会。其中一个重要的进步是革命性的语言模型,即大型语言模型(LLM),它彻底改变了我们与基于文本的数据进行交互的方式。我们将探索LLM的奇迹,并学习如何使用LangChain构建基于LLM的应用,LangChain是一个创新平台,充分发挥了LLM的潜力。

语言模型在各种应用中具有重要意义,因为它们能够理解和生成类似人类的文本。这些模型已经彻底改变了自然语言处理任务,如机器翻译、情感分析、聊天机器人和内容生成。它们提供了宝贵的洞察力,改善了沟通,并增强了用户体验。

学习目标

  • 了解语言模型 (LLM) 的基础知识及其在构建智能应用程序中的重要性。

  • 了解如何将 LangChain 集成到应用程序开发工作流程中并利用其 API。

  • 深入了解 Langchain 可以做什么。

  • 使用 Langchain 与各种 LLMs 进行互动。

  • 使用 LLM 创建对话式聊天机器人。

  • 深入了解使用 langchain 微调 LLM 的含义。

目录

  • 介绍

  • 什么是LLMs?

  • LangChain介绍

  • LangChain的特点与能力

  • 将LLMs整合到你的项目中

  • 释放LLMs的魔力

  • 设置LangChain

  • 使用 LangChain 与 LLM 互动

  • Langchain可以做什么?

  • 构建对话式聊天机器人

  • 使用 LangChain 微调 LLM

  • 数据集准备

  • 配置参数

  • 训练流程

  • 评估

  • 现实世界的用例和成功故事

  • 客户支持

  • 电子商务

  • 卫生保健

  • 内容生成

  • 结论

  • 经常问的问题

什么是LLMs?

LLM,即大型语言模型,是指经过大量文本数据训练的最先进的语言模型。它利用深度学习技术来理解和生成类似人类的文本,使其成为各种应用程序的强大工具,例如文本完成、语言翻译、情感分析等。LLMs最著名的例子之一是 OpenAI 的 GPT-3,它因其语言生成能力而受到广泛关注和赞誉。

46efd31156ce965eafb70e77232b5f0d.png

LangChain介绍

欢迎来到 LangChain,这是一个开拓性的平台,打开了通往语言模型 (LLM) 迷人领域的大门。通过 LangChain,你可以将LLMs无缝集成到你的项目中,利用其非凡的能力。让我们踏上一段激动人心的旅程,探索LangChain的迷人功能和无限可能。

LangChain 是一个先进的平台,为开发人员提供无缝且直观的界面,以在其应用程序中利用 LLM 的强大功能。它提供了一系列 API 和工具,可简化 LLM 与你项目的集成,使你能够释放语言处理的全部潜力。

LangChain的特点与能力

LangChain 拥有一系列让你着迷的特性和功能。从完成句子到分析情感,从翻译语言到识别命名实体,LangChain 为你提供了创造语言奇迹的工具。当你探索 API 文档时,你将发现如何有效使用这些功能的秘密,就像巫师掌握咒语一样。

将LLMs整合到你的项目中

了解了 LangChain 的特性和功能后,是时候将其魔力融入到你自己的项目中了。使用 LangChain SDK,你可以将 LLM 的非凡能力与你现有的代码库无缝融合。只需几行代码,你就能够调用LLMs的语言处理能力,将你的应用程序转变为能够理解和生成类人文本的智能生物。

释放LLMs的魔力

有了LangChain,可能性就如你的想象一样无限。想象一下,聊天机器人可以吸引用户进行有趣的对话,为他们提供有用且诙谐的回复。想象一下电子商务平台可以如此准确地推荐产品,让客户无法抗拒购买。想象一下提供个性化医疗信息的医疗保健应用程序,使患者能够做出明智的决定。创造这些令人难以置信的体验的力量就在你的掌握之中。

5a29479c15a20be3bdc2d23bb06e81ed.png

设置LangChain

为了开始我们的 LangChain 之旅,我们需要确保正确的安装和设置。你还将获得有关导入有效使用LLMs所需的必要库和依赖项的说明。

导入必要的库

import langchain
import openai
import os
import IPython
from langchain.llms import OpenAI
from dotenv import load_dotenv
from langchain.chat_models import ChatOpenAI
from langchain.schema import (AIMessage,HumanMessage,SystemMessage
)
from langchain.embeddings import OpenAIEmbeddings
from langchain.chains import LLMChain
from langchain.chains import RetrievalQA
from langchain import ConversationChainload_dotenv()
# API configuration
openai.api_key = os.getenv("OPENAI_API_KEY")

使用 LangChain 与 LLM 互动

使用 LangChain 与LLMs进行交互涉及一系列步骤,这些步骤允许你利用预训练语言模型的强大功能来执行文本生成和理解任务。这里是每个部分的详细解释,以及代码实现。

初始化LLM

要在LangChain中初始化LLM,首先需要导入必要的库和依赖项。例如,如果你使用 Python 编程语言,则可以导入“langchain”库并指定要使用的语言模型。这是一个例子:

from langchain import LangModel# Specify the language model you want to use
model_name = 'gpt3'# Initialize the LLM
llm = LangModel(model_name)

输入提示

初始化 LLM 后,你可以输入提示(prompt)来生成文本或获取响应。提示是语言模型生成文本的起点。你可以根据你的要求提供单个提示或多个提示。这是一个例子:

# Input a single prompt
prompt = "Once upon a time"# Generate text based on the prompt
generated_text = llm.generate_text(prompt)

检索生成的文本或响应

输入提示后,你可以从 LLM 检索生成的文本或响应。生成的文本或响应将基于提示提供的上下文和语言模型的功能。这是一个例子:

# Print the generated text
print(generated_text)# Print the responses
for response in responses:print(response)

通过遵循这些步骤并实现相应的代码,你可以使用 LangChain 与预先训练的 LLM 无缝交互,利用它们的能力来完成各种文本生成和理解任务。

Langchain可以做什么?

LangChain 凭借其多样化的功能,为开发人员在其应用程序中探索和利用提供了广泛的可能性。让我们深入了解 LangChain 的关键组件——模型、提示、链、索引和内存,并了解每个组件可以完成什么。

模型

目前,许多新的LLMs正在涌现。LangChain为各种模型提供了简化的界面和集成。

LangChain 的核心是强大的语言模型(LLM),使应用程序能够理解和生成类似人类的文本。通过 LangChain,开发人员可以接触到大量的LLMs,每个LLMs都接受过大量数据的训练,能够出色地完成各种与语言相关的任务。

无论是理解用户查询、生成响应,还是执行复杂的语言任务,LangChain 的模型都是语言处理能力的支柱。

from langchain.llms import OpenAI
llm = OpenAI(model_name="text-davinci-003")# The LLM takes a prompt as an input and outputs a completion
prompt = "How many days are there in a month"
completion = llm(prompt)

聊天模型

这将使用 ChatOpenAI 类在用户和 AI 聊天机器人之间建立对话。聊天机器人的初始化温度为 0,这使其响应更加集中和确定。对话以一条说明机器人目的的系统消息开始,然后是一条表达食物偏好的人类消息。聊天机器人将根据给定的输入生成响应。

chat = ChatOpenAI(temperature=0)chat([SystemMessage(content="You are a nice AI bot that helps a user figure out what to eat in one short sentence"),HumanMessage(content="I like tomatoes, what should I eat?")]
)

文本嵌入模型

文本嵌入模型接收文本输入,然后输出以数字方式表示输入文本的嵌入列表。可以使用嵌入从文本中提取信息。稍后,可以应用此信息来确定两个文本(例如电影摘要)的相似程度。

embeddings = OpenAIEmbeddings()text = "Alice has a parrot. What animal is Alice's pet?"
text_embedding = embeddings.embed_query(text)

提示

尽管以自然语言向LLMs添加提示应该感觉很自然,但在获得所需结果之前,你必须对提示进行重大更改。这称为即时工程

一旦你有了一个好的提示,你可能想将它用作其他事情的模板。因此,LangChain 提供了 PromptTemplates,使你能够使用各种组件构建提示。

template = "What is a good name for a company that makes {product}?"prompt = PromptTemplate(input_variables=["product"],template=template,
)prompt.format(product="colorful socks")

链接

将LLM与其他组件结合起来创建应用程序的过程在LangChain中称为链接。示例包括:

  • 结合提示模板和 LLM

  • 通过使用第一个 LLM 的输出作为第二个 LLM 的输入,可以按顺序组合多个 LLS。

  • 例如,将LLMs与外部数据相结合来回答问题。

  • 将LLMs与长期记忆(例如聊天记录)相结合。

chain = LLMChain(llm = llm, prompt = prompt)chain.run("colorful socks")

索引

缺乏上下文信息(例如访问特定文档或电子邮件)是LLMs的一大缺点。允许LLMs访问特定的外部数据将帮助你避免这种情况。

一旦外部数据准备好存储为文档,你就可以使用文本嵌入模型在名为 VectorStore 的矢量数据库中对其进行索引。

矢量存储现在将你的文档存储为嵌入。利用这些外部数据,你现在可以采取许多操作。

fc9d3eedb3bf9f17308095a830ee494a.png

让我们将它用于基于信息检索器的问答任务。

retriever = db.as_retriever()qa = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=retriever, return_source_documents=True)query = "What am I never going to do?"
result = qa({"query": query})print(result['result'])

记忆

对于聊天机器人这样的程序来说,能够回忆起之前的对话至关重要。然而,除非你输入聊天记录,否则LLMs默认缺乏任何长期记忆。

通过提供多种处理聊天记录的选项,LangChain 通过维护所有对话、最近的 K 条对话并总结所说内容来解决这个问题。

conversation = ConversationChain(llm=llm, verbose=True)
conversation.predict(input="Alice has a parrot.")
conversation.predict(input="Bob has two cats.")
conversation.predict(input="How many pets do Alice and Bob have?")

构建对话式聊天机器人

对话式聊天机器人已成为许多应用程序不可或缺的一部分,为用户提供无缝交互和个性化体验。开发成功的聊天机器人的关键在于其理解和生成类似人类响应的能力。借助LangChain先进的语言处理能力,你可以创建超越传统基于规则的系统的智能聊天机器人。

9967b46e2d6bd238e6acf9e4e6ea5699.jpeg

导入必要的库

from langchain.llms import OpenAI
from langchain import LLMChain
from langchain.prompts.prompt import PromptTemplate# Chat specific components
from langchain.memory import ConversationBufferMemory

使用提示模板

这将创建一个聊天机器人模板,该模板通过获取用户的输入并将其合并到预定义的 joke 格式中来生成 joke 。它使用 PromptTemplate 和 ConversationBufferMemory 来存储和检索聊天历史记录,使聊天机器人能够生成上下文相关的 joke 。

template = """
You are a helpful chatbot.
Your goal is to help the user make jokes.
Take what the user is saying and make a joke out of it{chat_history}
Human: {human_input}
Chatbot:"""prompt = PromptTemplate(input_variables=["chat_history", "human_input"], template=template
)
memory = ConversationBufferMemory(memory_key="chat_history")

聊天机器人

这将设置 LLMChain 类的实例,该实例利用 OpenAI 语言模型来生成响应。然后使用“llm_chain.predict()”方法根据提供的用户输入生成响应。

llm_chain = LLMChain(llm=OpenAI(temperature=0), prompt=prompt, verbose=True, memory=memory
)
llm_chain.predict(human_input="Is an pear a fruit or vegetable?")

使用 LangChain 微调 LLM

微调是一个过程,其中现有的预训练LLMs在特定数据集上进一步训练,以使其适应特定任务或领域。通过将模型暴露于特定于任务的数据,它可以学习更好地理解目标领域的细微差别、上下文和复杂性。此过程使开发人员能够改进模型的性能、提高准确性并使其与实际应用程序更加相关。

介绍LangChain的微调能力

LangChain 通过为开发人员提供一个全面的框架来在自定义数据集上训练LLMs,从而将微调提升到新的高度。它提供了一个用户友好的界面和一套简化微调过程的工具。LangChain支持各种流行的LLM架构,例如GPT-3,使开发人员能够为其应用程序使用最先进的模型。借助 LangChain,定制和优化 LLM 的能力触手可及。

LangChain 的微调工作流程

数据集准备

要微调 LLM,请根据你的特定任务或领域定制数据集。首先收集或整理与你的目标应用程序一致的标记数据集。该数据集应包括输入-输出对或用于微调过程的合适格式。

配置参数

在LangChain界面中,开发人员指定所需的LLM架构,例如层数、模型大小以及其他相关参数。这些配置定义了要训练的模型的架构和容量,使开发人员能够在性能和计算资源之间取得适当的平衡。

训练流程

LangChain利用分布式计算资源来高效训练LLM。开发者发起训练流程,LangChain优化训练流程,保证资源高效利用和更快收敛。在训练期间,模型从提供的数据集中学习,调整其参数以捕获特定于目标任务或领域的细微差别和模式。

一旦准备好数据集,你就可以开始使用 LangChain 进行微调过程。首先,导入必要的库和依赖项。然后,初始化预训练的 LLM 并在你的自定义数据集上对其进行微调。

这是一个例子:

from langchain import LangModel# Initialize the pre-trained LLM
pre_trained_model = LangModel('gpt3')# Load and preprocess your dataset
dataset = load_dataset('your_dataset.txt')
preprocessed_dataset = preprocess(dataset)# Fine-tune the LLM on your dataset
fine_tuned_model = pre_trained_model.fine_tune(preprocessed_dataset, num_epochs=5, batch_size=16)

在本例中,我们加载数据集,将其预处理为所需的格式,然后使用 LangModel 的“fine_tune”方法在预处理的数据集上训练 LLM。你可以根据你的具体要求调整训练周期数和批量大小等参数。

评估

LLM微调后,评估其表现至关重要。此步骤可帮助你评估模型对你的特定任务的适应程度。你可以使用适当的指标和单独的测试数据集来评估微调模型。这是一个例子:

# Prepare the test dataset
test_dataset = load_dataset('your_test_dataset.txt')
preprocessed_test_dataset = preprocess(test_dataset)# Evaluate the fine-tuned LLM
evaluation_results = fine_tuned_model.evaluate(preprocessed_test_dataset)

评估结果可让你深入了解经过微调的LLMs课程的有效性。你可以测量准确性、精确度、召回率或特定领域的指标等指标来评估模型的性能。

通过遵循这些步骤并实现提供的代码示例,你可以使用 LangChain 有效地微调预训练的 LLM。此过程允许你定制语言模型的行为,使其更适合并与你的特定应用程序要求相关。

使用LangChain的好处

  • 使用 LangChain 微调LLMs可以提高模型的准确性和特定任务或领域的上下文相关性,从而产生更高质量的输出。

  • LangChain 允许开发人员定制LLMs来处理独特的任务、行业特定的术语和特定领域的上下文,以满足特定的用户需求。

  • 经过微调的LLMs可以通过对特定领域语言的更深入理解来开发功能强大的应用程序,从而获得更准确和上下文感知的响应。

  • 使用 LangChain 进行微调减少了对大量训练数据和计算资源的需求,节省了时间和精力,同时实现了显着的性能改进。

现实世界的用例和成功故事

我们将深入研究LLMs应用程序的真实例子和成功故事,以展示LLMs和LangChain产生重大影响的广泛行业。我们将探讨这些应用程序如何改变客户支持、电子商务、医疗保健和内容生成,从而改善用户体验并增强业务成果。

客户支持

由LLMs支持的聊天机器人通过为用户提供即时和个性化的帮助,彻底改变了客户支持。公司正在利用 LangChain 构建聊天机器人,以理解客户的查询、提供相关信息,甚至处理复杂的交易。这些聊天机器人可以处理大量查询,确保全天候支持,同时减少等待时间并提高客户满意度。

电子商务

利用LLMs来增强电子商务行业的购物体验。LangChain使开发人员能够构建能够理解产品描述、用户偏好和购买模式的应用程序。通过利用LLMs功能,电子商务平台可以提供个性化的产品推荐、回答客户查询,甚至生成创意产品描述,从而提高销售额和客户参与度。

卫生保健

由LLMs支持的应用程序正在通过改善患者护理、诊断和治疗流程来改变医疗保健行业。LangChain支持开发智能虚拟助手,可以理解医疗查询、提供准确信息,甚至根据症状协助对患者进行分诊。这些应用程序有助于更快地访问医疗保健信息,减轻医疗保健提供者的负担,并使患者能够就其健康做出明智的决定。

内容生成

事实证明,LLMs是内容生成和创作方面的宝贵工具。LangChain 使开发人员能够构建能够生成创意和上下文相关内容的应用程序,例如博客文章、产品描述和社交媒体帖子。这些应用程序帮助内容创作者产生想法、提高写作效率并保持语气和风格的一致性。

这些现实世界的用例展示了LLMs支持的应用程序在各个行业的多功能性和影响力。通过利用LangChain的功能,开发人员可以创建创新的解决方案来简化流程、改善用户体验并推动业务增长。

实施LLMs申请的公司的成功案例展示了所取得的切实利益和成果。例如,大型电子商务平台实施的客户支持聊天机器人显着减少了支持票解决时间并提高了客户满意度得分。同样,利用LLMs功能的医疗保健应用程序提高了分类准确性并减少了急诊室的等待时间,最终挽救了生命。

结论

在构建 LLM 支持的应用程序方面,LangChain 开启了一个充满可能性的世界。如果你的兴趣在于文本完成、语言翻译、情感分析、文本摘要或命名实体识别。LangChain 提供直观的平台和强大的 API,将你的想法变为现实。通过利用LLMs的功能,你可以创建能够理解和生成类人文本的智能应用程序,从而彻底改变我们与语言交互的方式。

要点

  • LangChain 支持开发利用语言模型 (LLM) 卓越功能来理解和生成类人文本的应用程序。

  • 借助LangChain直观的平台,开发人员可以通过安装LangChain SDK并使用API凭证进行身份验证,轻松将LLM集成到他们的项目中。

  • 通过 LangChain 整合LLMs,开发人员可以创建与用户提供更自然和上下文感知交互的应用程序,从而增强用户体验并提高参与度。

常见问题

Q1. 什么是LangChain?

A1. LangChain 是一个提供工具和 API 的平台,用于构建由语言模型 (LLM) 驱动的应用程序。它简化了LLMs与你项目的集成,使你能够利用高级语言处理功能。

Q2. 什么是语言模型(LLM)?

A2. 语言模型 (LLM) 是基于大量文本数据训练的强大机器学习模型。它们可以理解并生成类似人类的文本,这使得它们对于文本完成、翻译、情感分析等应用很有价值。

Q3. 我需要机器学习方面的专业知识才能使用 LangChain 吗?

A3. 不,LangChain 的设计目的是让所有级别的开发者都可以使用,包括初学者。虽然对自然语言处理概念的一些了解可能会有所帮助,但 LangChain 的用户友好平台和文档使没有丰富机器学习专业知识的开发人员更容易构建由 LLM 驱动的应用程序。

Q4. LangChain可以使用哪些编程语言?

A4. LangChain提供了可以使用各种编程语言访问的API,包括Python、JavaScript、Java等。你可以选择你最熟悉的语言来将 LangChain 集成到你的应用程序中。

Q5. 可以用 Langchain 来增强语言模型的性能吗?

A5. 是的,通过 LangChain 集成LLMs,你可以增强语言处理模型的性能。LLMs拥有理解和生成文本的高级功能,可以补充和提高现有模型的准确性和有效性。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

8ad43643077f74bdefa87399aa8a86ae.jpeg

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

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

相关文章

仿B站APP

模仿B站开发的安卓APP(个人非美工,对颜色,图标搭配较懒都使用的一些占位图标,只完成了部分功能) 多图预警 侧边栏只做了效果使用的假数据 直播界面只有直播数据是实时爬取的,其他没有做爬取,只做了效果(轮播图的数据…

使用fusion app制作b站app

使用fusion app(以下简称FA)将b站网页版做成app 项目创建 打开FA,首页是已经创建过的项目,点击右下角的加号新建一个项目 创建一个标签栏模板 创建后就会进入我们的项目编辑页面 点击右上角的三角形就可以预览项目 现在我们的项…

LeetCode--HOT100题(28)

目录 题目描述:2. 两数相加(中等)题目接口解题思路代码 PS: 题目描述:2. 两数相加(中等) 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且…

【C语言】小游戏-三字棋

大家好,我是深鱼~ 目录 一、游戏介绍 二、文件分装 三、代码实现步骤 1.制作简易游戏菜单 2.初始化棋盘 3.打印棋盘 4.玩家下棋 5.电脑随机下棋 6.判断输赢 7.判断棋盘是否满了 四、完整代码 game.h(相关函数的声明,整个代码要引用的头文件以及宏…

Apache Paimon 在同程旅行的实践进展

摘要:本文整理自同程旅行大数据计算组负责人吴祥平,在 Apache Paimon Meetup 的分享。本篇内容主要分为四个部分: 1. Apache Paimon 引入 2. Apache Paimon 应用建设 3. Apache Paimon 优化实践 4. 未来规划和期待 Tips:点击「阅读…

Linux运维

目录 第一章、Linux概述 一、Linux的概念 二、Linux的特点 三、Linux VS Windows ​四、Linux的发展优势与存在问题-------不足 五、Linux常用发行版 六、CentOS简介 七、VMWare虚拟机简介 第二章、Linux初示 一、虚拟控制台 二 、Linux启动 (1&#xf…

Linux极客汇总常用运维大全

一、基础篇 1、Linux版本 内核版本 发行版本 RedHat Enterprise Linux-(公司级别,付费) Fedora(组建一个社区,免费) CentOS(基于红帽源代码编译的,免费) Debian(华丽界面&#xf…

Linux云服务器的使用,以及运行Python程序、相关Linux指令

目录 1、使用Linux云服务器的软件 1.1、MobaXterm_Personal 1.2、WindTerm 1.3、FileZilla FTP 2、Linux系统运行Python程序 3、Linux系统查看包、虚拟环境、安装包等 以下几个深度学习服务器都不错:智星云、AutoDL、恒源云 1、使用Linux云服务器的软件 1.1…

linux运维21

linux运维篇21 一、简述redis集群的实现原理二、基于redis5的redis cluster部署 一、简述redis集群的实现原理 工作原理:虽然redis有主从结构,但是无法解决只能单机写入数据的问题,无法实现分布式数据保存。而redis集群会预先分配16384个槽位…

linux运维15

linux运维篇15 一、实现基于MYSQL验证的vsftpd虚拟用户访问二、配置samba共享,实现/www目录共享三、使用rsyncinotify实现/www目录实时同步四、LVS调度算法总结五、LVS的跨网络DR实现 一、实现基于MYSQL验证的vsftpd虚拟用户访问 FTP服务器搭建: 数据库…

linux运维19

linux运维篇19 一、haproxy https实现二、总结tomcat的核心组件以及根目录结构三、tomcat实现多虚拟主机四、nginx实现后端tomcat的负载均衡调度五、简述memcached的工作原理 一、haproxy https实现 路由拓扑 后台web服务器搭建 LAMP架构看这个:LAMP yum install…

收集的 Linux VPS 在线重装系统脚本

因为 VPS 上预装的操作系统我并不习惯,所以打算重装一个。有的 VPS 服务商提供了较多种类的系统选择,有的却没有。如果你发现你希望重装的系统服务商没有提供,可以考虑自己安装。 本文内容 重装脚本 - 来自萌咖CentOS -> Debian 重装脚本 …

【运维】——服务器装Linux系统

一、用软碟通刻录系统光盘 1打开软碟通软件,打开文件-------选择Linux系统 2选择启动----写入硬盘映像 3开始写入硬盘映像,静等进度条走完即可。 二、开始安装Linux系统 1给主机插上刚刚刻录好的系统光盘,选择启动项 2设置信息:…

Linux入门---环境搭建(腾讯云服务器)、XShell远程登陆Linux

Linux环境搭建和远程登陆Linux Linux环境搭建XShell远程登陆Linux Linux环境搭建 主要有三种方式: 1.直接安装在物理机上,但是由于Linux桌面使用起来非常不友好,不推荐。 2.使用虚拟机软件,将Linux搭建在虚拟机上,但是…

Linux系统运维1 运维 项目研发 网站 服务器 计算机基础 Linux操作系统

运维的基本概念 运维行业前景 企业运作模式 四大部门 项目研发流程 职责描述&#xff1a; 运维的作用&#xff1a; 网站的相关概念 网站运行流程&#xff1a; IP<–>域名 重要概念&#xff1a; 服务器图片&#xff1a; 服务器&#xff1a;为用户提供服务的机器&…

linux运维14

linux运维篇14 一、简述CGI与FASTCGI区别二、 编译安装基于fastcgi模式的多虚拟主机的wordpress和discuz的LAMP架构三、通过loganalyzer展示数据库中的日志&#xff08;cgi模式&#xff09; 一、简述CGI与FASTCGI区别 CGI模式&#xff1a;当用户访问网站的动态资源时&#xff…

【从零开始学习JAVA | 第四十五篇】动态代理

目录 前言&#xff1a; 动态代理&#xff1a; 动态代理实现步骤&#xff1a; 动态代理的应用场景&#xff1a; 总结&#xff1a; 前言&#xff1a; 动态代理作为一种强大的编程技术&#xff0c;不仅为我们提供了灵活性和可扩展性&#xff0c;还为软件开发和系统设计带来了…

布隆过滤器在缓存系统中的实践

一. 背景 在业务开发中&#xff0c;在并发量很高的情况下&#xff0c;通常会使用缓存对系统查询性能进行优化&#xff0c;在缓存命中率很高的情况下&#xff0c;缓存的使用能够大幅提升系统查询性能。但是在缓存命中率非常低场景下&#xff0c;如果采用传统缓存读取模式&#…

Redisson_布隆过滤器

应用场景 去重 诞生背景 Java应用一般通过JDK自身提供的HashSet去重&#xff0c;通过contains()方法判断当前元素是否存在于Set中。该方式要求在调用contains()前&#xff0c;已经将数据列表加载到内存中&#xff08;即该方法基于内存存储实现判断功能&#xff09;。 缺点: 1.满…

【布隆过滤器】

我是&#x1f31f;廖志伟&#x1f31f;&#xff0c;一名&#x1f315;Java开发工程师&#x1f315;、&#x1f4dd;Java领域优质创作者&#x1f4dd;、&#x1f389;CSDN博客专家&#x1f389;、&#x1f339;幕后大佬社区创始人&#x1f339;。拥有多年一线研发经验&#xff0…