【智能时代的创新工具】LangChain快速入门指南:轻松掌握语言模型的集成与运用
一、LangChain:连接语言模型与现实世界的桥梁
1.1 LangChain的定义与重要性
LangChain是一个开源的Python库,它旨在为开发人员提供一种简便的方式来集成和运用语言模型。它不仅仅是一个简单的API调用工具,而是一个具有丰富功能的框架,可以帮助开发者构建各种基于语言模型的应用,如对话系统、文本生成、问答等。
LangChain的重要性在于,它使得语言模型的应用变得更加容易和高效。通过LangChain,开发者可以轻松地管理和维护多个语言模型,编写自定义的提示和链,以及处理模型的输入和输出。这大大降低了开发门槛,使得更多的人可以参与到语言模型的研究和应用中来。
1.2 LangChain在人工智能领域的应用
LangChain在人工智能领域的应用非常广泛。以下是一些常见的应用场景:
-
对话系统:LangChain可以用来构建各种对话系统,如智能客服、聊天机器人等。通过自定义链和提示,可以使对话系统更加智能化和人性化。
-
文本生成:LangChain支持各种文本生成任务,如文章生成、摘要生成等。通过调整模型的参数和链的结构,可以生成高质量且有深度的文本内容。
-
问答系统:LangChain可以帮助构建高效的问答系统。通过自定义链和提示,可以使模型更好地理解用户的问题,并提供准确的答案。
-
知识抽取:LangChain可以用于从长篇文章中提取出摘要,使得用户可以快速了解文章的主要内容。同时,还可以从文本中按照需求抽取出特定格式的数据。
-
多模态任务:LangChain也支持多模态任务,如图像描述生成、视频字幕生成等。通过结合语言模型和其他类型的模型,可以使模型更好地理解和生成多模态内容。
以上只是LangChain应用的一部分,随着研究的深入和技术的发展,LangChain在人工智能领域的应用将会更加广泛。
二、LangChain的核心组件与功能
2.1 模型(Model)
LangChain 的核心组件之一是模型(Model),它是进行语言处理任务的主体。LangChain 支持多种语言模型,包括 GPT、GPT-2、GPT-3、BERT 等,开发者可以根据自己的需求选择合适的模型。
在 LangChain 中,模型通常被封装在一个模型包装器(Model Wrapper)中,以提供统一的接口进行调用。模型包装器负责初始化模型、加载模型权重、处理模型输入和输出等。
以下是一个使用 LangChain 加载 GPT-2 模型的简单示例:
from langchain import ModelWrapper# 创建 GPT-2 模型包装器实例
model_wrapper = ModelWrapper.from_pretrained("gpt2")# 使用模型包装器进行推理
input_text = "Once upon a time"
output = model_wrapper.predict(input_text)
print(output)
在这个示例中,我们首先从 langchain
库中导入 ModelWrapper
类。然后,我们使用 from_pretrained
方法创建了一个 GPT-2 模型包装器实例。接下来,我们使用模型包装器的 predict
方法对一个输入文本进行推理,并打印输出结果。
2.2 提示管理(Prompt Management)
LangChain 的另一个核心组件是提示管理(Prompt Management),它负责处理与语言模型交互时的一些高级功能,如链的构建、提示的生成和管理等。
在 LangChain 中,提示管理主要通过提示模板(Prompt Templates)来实现。提示模板是一种特殊的文本结构,它可以将输入文本转换为模型可以理解的形式,并指导模型生成特定的输出。
以下是一个使用 LangChain 提示管理功能进行文本生成的示例:
from langchain import PromptTemplate
from langchain.model_wrappers import GPT2ModelWrapper# 创建一个提示模板实例
prompt_template = PromptTemplate.from_prompt_string("Translate the following English text to Chinese: {input_text}")# 创建 GPT-2 模型包装器实例
model_wrapper = GPT2ModelWrapper.from_pretrained("gpt2")# 使用提示模板和模型包装器进行文本生成
input_text = "Once upon a time"
output = model_wrapper.predict(input_text, prompt_template=prompt_template)
print(output)
在这个示例中,我们首先从 langchain
库中导入 PromptTemplate
类。然后,我们使用 from_prompt_string
方法创建了一个提示模板实例,该实例将输入文本转换为模型可以理解的形式,并指导模型生成特定的输出。接下来,我们创建了一个 GPT-2 模型包装器实例。最后,我们使用提示模板和模型包装器进行文本生成,并打印输出结果。
2.3 记忆(Memory)
LangChain 的另一个重要组件是记忆(Memory),它用于存储和管理模型在处理任务过程中所需的信息。记忆可以是一个简单的列表、字典或其他任何数据结构,只要它能满足你的应用需求。
记忆的主要作用是在模型处理任务时提供上下文信息。例如,在一个对话系统中,记忆可以用于存储用户的历史消息和系统的回复,以便模型在生成回复时能够参考这些历史信息。
以下是一个使用 LangChain 记忆功能进行对话生成的示例:
from langchain import Memory, ModelWrapper
from langchain.model_wrappers import GPT2ModelWrapper# 创建一个记忆实例
memory = Memory()# 创建 GPT-2 模型包装器实例
model_wrapper = GPT2ModelWrapper.from_pretrained("gpt2")# 使用记忆和模型包装器进行对话生成
def generate_response(input_text):memory.append(input_text)output = model_wrapper.predict(input_text, memory=memory)memory.append(output)return output# 模拟用户输入
user_input = "What's the weather like today?"
response = generate_response(user_input)
print(response)
在这个示例中,我们首先从 langchain
库中导入 Memory
类。然后,我们创建了一个 GPT-2 模型包装器实例。接下来,我们定义了一个 generate_response
函数,该函数使用记忆和模型包装器生成回复。在函数中,我们使用 memory.append
方法将用户输入和历史回复存储在记忆中,并使用模型包装器的 predict
方法生成新的回复。最后,我们将新生成的回复添加到记忆中,并返回给用户。
2.4 链(Chains)
LangChain 的链(Chains)是一种高级功能,它允许开发者构建复杂的序列任务,这些任务可以组合多个模型的输出,以执行更复杂的数据处理任务。链由一系列的步骤组成,每个步骤都可以是一个模型调用、一个提示模板的应用或对输出的进一步处理。
链在 LangChain 中的应用非常灵活,它可以用于各种场景,如自动化文本处理、数据清洗、知识问答等。通过链,开发者可以有效地整合多个模型的优势,实现模型的协同工作。
以下是一个使用 LangChain 链功能进行文本处理的示例:
from langchain import Chain, GPT2ModelWrapper, PromptTemplate# 创建一个链实例
chain = Chain()# 创建 GPT-2 模型包装器实例
gpt2_model_wrapper = GPT2ModelWrapper.from_pretrained("gpt2")# 创建一个提示模板实例
prompt_template = PromptTemplate.from_prompt_string("Translate the following English text to Chinese: {input_text}")# 将模型包装器和提示模板添加到链中
chain.add_component(gpt2_model_wrapper, prompt_template)# 使用链进行文本处理
def process_text(input_text):output = chain.predict(input_text)return output# 模拟用户输入
user_input = "Once upon a time"
processed_output = process_text(user_input)
print(processed_output)
在这个示例中,我们首先从 langchain
库中导入 Chain
类。然后,我们创建了一个 GPT-2 模型包装器实例和一个提示模板实例。接下来,我们将模型包装器和提示模板添加到链中。最后,我们定义了一个 process_text
函数,该函数使用链进行文本处理,并打印处理后的输出。
三、LangChain的模型I/O:实现与应用的关键
3.1 模型I/O的概念与作用
模型I/O(Model Input/Output)是LangChain中的一个关键概念,它涉及如何将外部数据转换为模型可以理解的格式,以及如何将模型的输出转换为有用的信息。在LangChain中,模型I/O是连接模型与实际应用的桥梁,它确保数据能够在正确的格式下被模型处理,并且输出能够被应用程序有效地使用。
3.2 模型包装器(Model Wrappers)
模型包装器(Model Wrappers)是LangChain中用于封装模型的组件,它们负责将模型与LangChain的其他组件连接起来。模型包装器可以执行多种任务,包括加载模型权重、处理模型输入和输出、管理模型的状态等。通过使用模型包装器,开发者可以方便地管理和复用不同的模型。
以下是一个使用 LangChain 模型包装器进行文本生成的示例:
from langchain import ModelWrapper
from langchain.model_wrappers import GPT2ModelWrapper# 创建 GPT-2 模型包装器实例
model_wrapper = GPT2ModelWrapper.from_pretrained("gpt2")# 使用模型包装器进行文本生成
input_text = "Once upon a time"
output = model_wrapper.predict(input_text)
print(output)
在这个示例中,我们首先从 langchain
库中导入 ModelWrapper
类和 GPT2ModelWrapper
类。然后,我们使用 from_pretrained
方法创建了一个 GPT-2 模型包装器实例。接下来,我们使用模型包装器的 predict
方法对一个输入文本进行推理,并打印输出结果。
3.3 提示词模板(Prompt Templates)
提示词模板(Prompt Templates)是LangChain中用于定义模型输入的格式化的文本模板。它们允许开发者为模型提供结构化的输入,从而控制模型生成的输出。提示词模板通常包含动态部分,这些部分在预测时会被实际的输入数据替换。
以下是一个使用 LangChain 提示词模板进行文本生成的示例:
from langchain import PromptTemplate# 创建一个提示词模板实例
prompt_template = PromptTemplate.from_prompt_string("Translate the following English text to Chinese: {input_text}")# 使用提示词模板进行文本生成
input_text = "Once upon a time"
output = prompt_template.predict(input_text)
print(output)
在这个示例中,我们首先从 langchain
库中导入 PromptTemplate
类。然后,我们使用 from_prompt_string
方法创建了一个提示词模板实例。接下来,我们使用提示词模板的 predict
方法对一个输入文本进行推理,并打印输出结果。
3.4 输出解释器(Output Parsers)
输出解释器(Output Parsers)是LangChain中用于解析模型输出的组件。它们负责将模型的输出转换为有用的格式,以便开发者可以进一步处理或展示这些输出。输出解释器可以根据需要定制,以支持不同的输出格式和处理逻辑。
以下是一个使用 LangChain 输出解释器进行文本解析的示例:
from langchain import OutputParser# 创建一个输出解释器实例
output_parser = OutputParser()# 使用输出解释器进行文本解析
input_text = "Once upon a time"
output = model_wrapper.predict(input_text)
parsed_output = output_parser.parse(output)
print(parsed_output)
在这个示例中,我们首先从 langchain
库中导入 OutputParser
类。然后,我们创建了一个输出解释器实例。接下来,我们使用模型包装器的 predict
方法生成输出,并使用输出解释器的 parse
方法对输出进行解析,最后打印解析后的结果。
四、如何开始使用LangChain:从入门到实践
4.1 安装与配置LangChain环境
在开始使用LangChain之前,你需要确保你的环境中已经安装了必要的Python库。LangChain的安装过程非常简单,你可以通过pip进行安装:
pip install langchain
此外,LangChain还需要一个预训练的语言模型。你可以从Hugging Face的Transformers库中选择一个合适的模型进行安装:
pip install transformers
安装完成后,你可以通过以下方式加载一个预训练的GPT-2模型:
from langchain import ModelWrapper
from langchain.model_wrappers import GPT2ModelWrapper# 加载GPT-2模型
model_wrapper = GPT2ModelWrapper.from_pretrained("gpt2")
4.2 创建第一个LangChain应用程序
创建一个LangChain应用程序的基本步骤包括定义输入、使用模型包装器进行预测,并处理输出。以下是一个简单的文本生成的例子:
from langchain import Chain, GPT2ModelWrapper, PromptTemplate# 创建一个链实例
chain = Chain()# 创建 GPT-2 模型包装器实例
gpt2_model_wrapper = GPT2ModelWrapper.from_pretrained("gpt2")# 创建一个提示词模板实例
prompt_template = PromptTemplate.from_prompt_string("Translate the following English text to Chinese: {input_text}")# 将模型包装器和提示词模板添加到链中
chain.add_component(gpt2_model_wrapper, prompt_template)# 使用链进行文本生成
def generate_translation(input_text):return chain.predict(input_text)# 模拟用户输入
user_input = "Once upon a time"
translated_output = generate_translation(user_input)
print(translated_output)
在这个例子中,我们首先创建了一个链实例,然后加载了一个GPT-2模型包装器和一个提示词模板。接着,我们将它们添加到链中,并定义了一个函数来生成翻译。最后,我们调用这个函数并打印输出结果。
4.3 调试与优化LangChain应用
在开发过程中,调试是确保你的应用程序按预期工作的重要步骤。LangChain提供了一些工具来帮助你调试应用程序,如检查模型输出和链的执行过程。
以下是一个使用LangChain进行调试的例子:
from langchain import Chain, GPT2ModelWrapper, PromptTemplate, OutputParser# 创建一个链实例
chain = Chain()# 创建 GPT-2 模型包装器实例
gpt2_model_wrapper = GPT2ModelWrapper.from_pretrained("gpt2")# 创建一个提示词模板实例
prompt_template = PromptTemplate.from_prompt_string("Translate the following English text to Chinese: {input_text}")# 创建一个输出解释器实例
output_parser = OutputParser()# 将模型包装器、提示词模板和输出解释器添加到链中
chain.add_component(gpt2_model_wrapper, prompt_template)
chain.add_component(output_parser)# 使用链进行文本生成
def generate_translation(input_text):return chain.predict(input_text)# 模拟用户输入
user_input = "Once upon a time"
translated_output = generate_translation(user_input)
print(translated_output)
在这个例子中,我们不仅添加了一个输出解释器,还打印了模型的中间输出,以便我们可以在调试过程中查看链的执行过程。
五、LangChain的实际应用案例解析
5.1 从对话机器人到知识管理系统:LangChain的应用领域
LangChain是一个强大的语言处理工具,可以应用于多种场景,如对话机器人、知识管理系统、文本生成、文本分类等。以下是一些常见的应用领域:
- 对话机器人:使用LangChain构建智能对话机器人,可以实现自然语言理解和生成,提供用户友好的交互体验。
- 知识管理系统:通过LangChain对文本数据进行处理和分析,可以构建智能的知识管理系统,帮助用户快速获取相关信息。
- 文本生成:利用LangChain生成高质量的文本内容,如新闻报道、文章摘要、产品描述等。
- 文本分类:使用LangChain对文本进行分类,如垃圾邮件检测、情感分析、主题分类等。
- 文本摘要:通过LangChain生成文本摘要,帮助用户快速了解长篇文本的主要内容。
5.2 实际案例:利用LangChain构建智能客服系统
智能客服系统是一种使用自然语言处理技术来与用户进行交互的系统。以下是一个使用LangChain构建智能客服系统的步骤:
- 数据准备:收集大量的客服对话数据,包括用户的问题和客服的回复。
- 模型训练:使用收集到的数据对LangChain进行训练,以学习如何处理自然语言。
- 构建链:使用训练好的模型构建一个链,该链包括输入解析、模型预测和输出解释等步骤。
- 系统部署:将构建好的链部署到服务器上,以便与用户进行交互。
- 实时交互:用户通过文本输入提出问题,系统会根据链的执行结果生成回复。
以下是一个简单的智能客服系统的代码示例:
from langchain import Chain, GPT2ModelWrapper, PromptTemplate, OutputParser# 创建一个链实例
chain = Chain()# 创建 GPT-2 模型包装器实例
gpt2_model_wrapper = GPT2ModelWrapper.from_pretrained("gpt2")# 创建一个提示词模板实例
prompt_template = PromptTemplate.from_prompt_string("User: {input_text}, Bot: {generate_response}")# 创建一个输出解释器实例
output_parser = OutputParser()# 将模型包装器、提示词模板和输出解释器添加到链中
chain.add_component(gpt2_model_wrapper, prompt_template)
chain.add_component(output_parser)# 用户输入
user_input = "How can I reset my password?"# 使用链进行预测
response = chain.predict(user_input)# 打印回复
print(response)
在这个例子中,我们首先创建了一个链实例,然后加载了一个GPT-2模型包装器和一个提示词模板。接着,我们将它们添加到链中,并定义了一个函数来生成回复。最后,我们调用这个函数并打印输出结果。
六、LangChain的未来与发展趋势
6.1 LangChain在人工智能技术中的地位与作用
LangChain作为一款基于语言模型的集成工具,在人工智能领域中占据着重要的地位。它不仅能够提高语言处理任务的效率和准确性,还能够帮助开发者快速构建和部署复杂的语言处理应用。
在自然语言处理(NLP)领域,LangChain提供了一个强大的平台,使得开发者可以轻松地集成各种语言模型,实现从基础的语言理解到高级的语言生成等任务。同时,LangChain还支持多种语言模型,如GPT-2、BERT等,使得开发者可以根据不同的需求选择合适的模型。
此外,LangChain还具有高度的可扩展性和灵活性,使得开发者可以轻松地添加新的组件和功能,以满足不断变化的应用需求。例如,LangChain支持链的构建,使得开发者可以组合多个模型的输出,以执行更复杂的数据处理任务。
6.2 LangChain的发展前景与挑战
随着人工智能技术的不断发展和应用的不断扩展,LangChain的发展前景非常广阔。未来,LangChain可能会在以下几个方面进行发展和改进:
- 模型支持:随着新的语言模型的出现,LangChain可能会不断增加对更多模型的支持,以满足开发者的需求。
- 组件扩展:LangChain可能会进一步扩展其组件库,以支持更丰富的功能和应用场景。
- 链的优化:LangChain可能会不断优化链的构建和执行过程,以提高效率和准确性。
- 定制化:LangChain可能会提供更多的定制化选项,以满足不同应用场景的需求。
然而,LangChain的发展也面临着一些挑战,如模型的训练和部署成本、模型的解释性和可解释性、模型的偏见和歧视等。为了解决这些问题,LangChain需要不断改进其技术和算法,以提高模型的效率和准确性,同时还需要关注模型的伦理和社会影响。
七、总结
7.1 LangChain带来的机遇与变革
随着人工智能技术的飞速发展,语言模型在自然语言处理、对话系统、文本生成等多个领域中发挥着越来越重要的作用。LangChain作为一种创新的集成工具,为开发者提供了一个强大的平台,使得语言模型的应用变得更加便捷和高效。
LangChain的核心优势在于其灵活性和可扩展性,它不仅支持多种语言模型,还支持链的构建和自定义组件的添加。这意味着开发者可以根据自己的需求,轻松地将不同的模型和功能组合在一起,以实现更复杂和高级的应用场景。
此外,LangChain还提供了记忆和输出解释器等高级功能,使得模型可以更好地处理上下文信息,并将其转换为有用的输出。这为开发者提供了更多的灵活性和创造力,使得他们可以构建更加智能和人性化的应用。
7.2 面向未来的LangChain展望
随着人工智能技术的不断进步,LangChain的未来发展前景非常广阔。LangChain将继续在语言模型的集成和应用方面发挥重要作用,帮助开发者实现更高效和智能的语言处理任务。
在未来,LangChain可能会进一步扩展其功能和组件,以支持更多的语言模型和应用场景。此外,LangChain还可能会继续优化其算法和模型,以提高效率和准确性。
随着人工智能技术的普及和应用的不断扩展,LangChain也将成为更多开发者和企业的首选工具。它将为语言处理领域带来更多的机遇和变革,帮助开发者构建更加智能和人性化的应用。
总结起来,LangChain作为一种创新的集成工具,为语言模型的应用提供了强大的支持。它不仅提高了语言处理任务的效率和准确性,还提供了更多的灵活性和创造力。面向未来,LangChain将继续发挥重要作用,为语言处理领域带来更多的机遇和变革。
相关文章:
【智能时代的创新工具】LangChain快速入门指南:轻松掌握语言模型的集成与运用
一、LangChain:连接语言模型与现实世界的桥梁 1.1 LangChain的定义与重要性 LangChain是一个开源的Python库,它旨在为开发人员提供一种简便的方式来集成和运用语言模型。它不仅仅是一个简单的API调用工具,而是一个具有丰富功能的框架&#x…...
文献阅读:细胞分辨率全脑图谱的交互式框架
文献介绍 文献题目: An interactive framework for whole-brain maps at cellular resolution 研究团队: Daniel Frth(瑞典卡罗林斯卡学院)、Konstantinos Meletis(瑞典卡罗林斯卡学院) 发表时间ÿ…...
YAML基础语言深度解析
引言 YAML(YAML Aint Markup Language,即YAML不是一种标记语言)是一种直观、易于阅读的数据序列化格式,常用于配置文件、数据交换和程序间的通信。其设计目标是易于人类阅读和编写,同时也便于机器解析和生成。在本文中…...
xcode使用
1. 界面 1.1. Build Settings,Build Phases和Build Rules三个设置项 Build Settings(编译设置): 每个选项由标题(Title)和定义(Definition)组成。这里主要定义了Xcode在编译项目时的一些具体配置 Build Phases(编译资源):用于指定编译过程中项目所链接的原文件,依赖对象,库…...
OV2640引脚的定义(OV2640 FPC模组规格书(接口线序))
OV2640是一款由Omni Vision公司生产的1/4寸CMOS UXGA(1632x1222)图像传感器。这款传感器以其小巧的体积、低工作电压和强大的功能而著称,它集成了单片UXGA摄像头和影像处理器,能够通过SCCB总线控制输出各种分辨率的8/10位影像数据…...
CTFSHOW 萌新 web10 解题思路和方法(passthru执行命令)
点击题目链接,分析页面代码。发现代码中过滤了system、exec 函数,这意味着我们不能通过system(cmd命令)、exec(cmd命令)的方式运行命令。 在命令执行中,常用的命令执行函数有: system(cmd_code);exec(cmd_…...
深入Java数据库连接和JDBC
引言 Java数据库连接(JDBC)是Java语言中用于执行SQL语句的标准API。通过JDBC,开发者可以方便地与关系型数据库进行交互。然而,直接使用JDBC API面临着数据库连接管理复杂、性能瓶颈等问题。数据库连接池作为一种解决方案,可以有效地管理数据库连接,提高应用程序的性能。…...
灰狼优化算法(GWO)与长短期记忆网络(LSTM)结合的预测模型(GWO-LSTM)及其Python和MATLAB实现
#### 一、背景 在现代数据科学和人工智能领域,预测模型的准确性和效率是研究者和工程师不断追求的目标,尤其是在时间序列预测、金融市场分析、气象预测等领域。长短期记忆(LSTM)网络是一种解决传统递归神经网络(RNN&a…...
电路板热仿真覆铜率,功率,结温,热阻率信息计算获取方法总结
🏡《电子元器件学习目录》 目录 1,概述2,覆铜率3,功率4,器件尺寸5,结温6,热阻1,概述 电路板热仿真操作是一个复杂且细致的过程,旨在评估和优化电路板内部的热分布及温度变化,以确保电子元件的可靠性和性能。本文简述在进行电路板的热仿真时,元器件热信息的计算方法…...
C#中多线程编程中的同步、异步、串行、并行及并发及死锁
在C#中,多线程编程是一个强大的功能,它允许程序同时执行多个任务。然而,这也带来了复杂性,特别是在处理同步、异步、串行、并行、并发以及死锁等问题时。下面我将详细解释这些概念,并给出一些C#中的示例和注意事项。 …...
【Lampiao靶场渗透】
文章目录 一、IP地址获取 二、信息收集 三、破解SSH密码 四、漏洞利用 五、提权 一、IP地址获取 netdiscover -i eth0 Arp-scan -l Nmap -sP 192.168.78.0/24 靶机地址:192.168.78.177 Kali地址:192.168.78.128 二、信息收集 nmap -sV -p- 192.…...
使用WebSocket实现log日志流的实时展示-从轮询到通知
场景介绍 最近开发一个系统,其中一个模块需要展示实时的执行过程,过程日志可能比较多。以前的方案都是前端定时轮询,比如每秒查一次后端接口,将拉取回来的日志重新展示。轮询方案简单容易实现,但是比较消耗资源&#…...
UE5 从零开始制作跟随的大鹅
文章目录 二、绑定骨骼三、创建 ControlRig四、创建动画五、创建动画蓝图六、自动寻路七、生成 goose八、碰撞 和 Physics Asset缺点 # 一、下载模型 首先我们需要下载一个静态网格体,这里我们可以从 Sketchfab 中下载:Goose Low Poly - Download Free …...
O’Reilly
--江上往来人,但爱鲈鱼美。 --君看一叶舟,出没风波里。 OReilly OReilly出版社出版的技术类图书 俗称动物系列 应该是每个技术人员的必备手册。 OReilly动物系列(中译本) 简介" 动物系列作为 OReilly 书籍的典型代表被普遍…...
优盘驱动器未格式化:数据拯救行动指南
优盘困境:驱动器未格式化的挑战 在日常的数据存储与传输中,优盘以其便携性和高容量成为了我们不可或缺的伙伴。然而,当您尝试访问优盘时,突然弹出的“驱动器未被格式化”提示却如同晴天霹雳,让人措手不及。这一状况不…...
4.Handler mappings
处理程序映射 简介 在早期版本的 Spring 中,用户需要在 Web 应用程序上下文中定义一个或多个 HandlerMapping bean 以将传入的 Web 请求映射到适当的处理程序。随着注解控制器的引入,通常不再需要这样做,因为 RequestMappingHandlerMapping…...
《学会 SpringMVC 系列 · 消息转换器 MessageConverters》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...
深度学习项目 -7-使用 Python 的手写数字识别
一、前言 该文章仅作为个人学习使用 二、正文 项目源代码:深度学习项目 - 使用 Python 进行手写数字识别 - DataFlair (data-flair.training) 数据集:https://drive.google.com/open?id1hJiOlxctFH3uL2yTqXU_1f6c0zLr8V_K Python 深…...
MySQL —— 库,数据类型 与 表
库与基础操作 1.1 查看数据库 使用 show databases; 可以查看当前 MySQL 目前有多少个数据库 5 rows 表示有 5 行,这里是表示的是有效的数据,不包括 第一行的指引 set 表示结果集合 0.01 sec 表示这个 sql 语句一共运行了0.01 秒,一般情况…...
Java重修笔记 第二十七天 匿名内部类
匿名内部类 1. 定义:无类名(底层自动分配类名“外部类名$1”),既是类也是对象,定义在外部类的局部位置,例如方法体和代码块中,通过new类或接口并在大括号里重写方法来实现。 2. 使用场景&…...
Nero Lens 智图 - 适用于 iOS 和 iPadOS 的专业图片处理 App
首先是手机端的无损放大 App:Nero Lens 智图,适用于 iOS 和 iPadOS,不仅可以放大,还有多种 AI 图片增强功能。 使用这款 App 可以通过 AI 模型智能放大可达 400%,还有老照片去划痕、上色,抠图移除背景、照…...
Nginx代理路径被吃
Nginx代理路径被吃的情况 日常工作中经常使用nginx反向代理一些资源,有时正常代理,发现代理不过去。 验证被吃调location情况 通过浏览器访问: https://zhao138969.com/LinuxPackage/Python/SelectDocker location /LinuxPackage { proxy…...
pytest-html报告修改与汉化
前言 Pytest框架可以使用两种测试报告,其中一种就是使用pytest-html插件生成的测试报告,但是报告中有一些信息没有什么用途或者显示的不太好看,还有一些我们想要在报告中展示的信息却没有,最近又有人问我pytest-html生成的报告&a…...
react-native从入门到实战系列教程一Swiper组件的使用及bug修复
轮播图,在app中随处可见,这么重要的功能我们怎么可能不学习下在react-native中的实现方式。 依然是第三方组件react-native-swiper 官网地址 https://www.npmjs.com/package/react-native-swiper 组件使用的组件及事件参考官方即可。 实现效果 官网…...
springboot开发的常用注解总结-配置组件类注解
Spring Boot 提供了许多注解,这些注解大大简化了 Spring 应用的配置和开发过程。以下是一些常见的 Spring Boot注解及其作用。 目录 配置组件类 (Configure Component )Configuration解释:Demo Code:更深度使用&#x…...
DataX 最新版本安装部署
1、下载 git clone gitgithub.com:alibaba/DataX.git 2、打包 mvn -U clean package assembly:assembly -Dmaven.test.skiptrue...
【架构】应用保护
这篇文章总结一下应用保护的手段。如今说到应用保护,更多的会想到阿里的sentinel,手段丰富,应用简单。sentinel的限流、降级、熔断,可以自己去试一下,sentinel主要通过配置实现功能,不难。sentinel的简介放…...
从核心到边界:六边形、洋葱与COLA架构的深度解析
文章目录 1 引言2 软件架构3 架构分类4 典型的应用架构4.1 分层架构4.2 CQRS4.3 六边形架构4.4 洋葱架构4.5 DDD 5 COLA架构设计5.1 分层设计5.2 扩展设计5.3 规范设计5.3.1 组件规范5.3.2 包规范5.3.3 命名规范 6 COLA架构总览7 小结 1 引言 软件的首要技术使命:管…...
04-Fastjson反序列化漏洞
免责声明 本文仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担&…...
ABC365(A-D)未补
A - Leap Year(模拟) 题意:给定一个数字n,如果n不是4的倍数,输出365;如果n是4的倍数但不是100的倍数,输出366;如果n是100的倍数但不是400的倍数,输出365;如果…...
网站会员注册系统/抖音搜索引擎优化
景点介绍每年放牧季节开始和结束之时,当地牧民都会举行特别的庆祝仪式。他们把自制的奶酪刻上标记分赠亲朋好友。放牧时节,叮铛悦耳的牛铃声为宁静的牧场平添了几分生气。为了保护牧场的生态平衡,放养牛羊的数量受到严格的限制。生活在这片纯…...
wordpress页面访问量/如何推广一款app
前言 随着计算机技术和 Internet 的日新月异,视频点播技术因其良好的人机交互性和流媒体传输技术倍受教育、娱乐等行业青睐,而在当前, 云计算平台厂商的产品线不断成熟完善, 如果想要搭建视频点播类应用,告别刀耕火种…...
上海建站 seo/品牌宣传策划公司
【下载dotConnect for Oracle最新版本】dotConnect for Oracle(原名OraDirect.NET)建立在ADO.NET技术上,为基于Oracle数据库的应用程序提供完整的解决方案。它为设计应用程序结构带来了新的方法,提高工作效率,使数据库应用程序的开发更简便。…...
网站建设系统规划方案/济南seo公司报价
唐僧团队通常被认为是一个成功的团队,因为他们是不同风格的成员组合在一起,经过了磨合后,同心协力达成了最初的目标,封神成佛。一个成功的团队,未必是一个优秀的Scrum团队。如果站在Scrum的角度来检视唐僧团队…...
南通优普网站建设制作/辽宁seo推广
吞吐量 指在一次性能测试过程中网络上传输的数据量的总和。 对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,在容量规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载能力,另外…...
建外贸网站需要多少钱/培训网站推荐
干web报名时间。通常,他们需要json转换为Object/list/map要么Object/List/map转换为json,由能够编写代码的简单包装非常多,以减轻负担。本文将给出json的一系列的方法转换。 闲话不 讲。直接在代码: 首先Object /List /Map转化为J…...