首页 > 其他分享 >软件测试/人工智能|探究 LangChain 核心模块:PromptsModelsParsers

软件测试/人工智能|探究 LangChain 核心模块:PromptsModelsParsers

时间:2023-11-27 18:13:21浏览次数:48  
标签:PromptsModelsParsers 处理 模型 LangChain 模块 软件测试 schema

简介

LangChain 是一种新兴的语言处理平台,其核心模块之一即 PromptsModelsParsers。这一模块扮演着关键的角色,为 LangChain 的功能和性能提供了坚实的基础。在这篇文章中,我们将深入探讨 PromptsModelsParsers 模块的工作原理、功能和其对语言处理的重要性。

什么是 PromptsModelsParsers?

在 LangChain 中,PromptsModelsParsers 模块被设计成一个整合了多种功能的模块,它涵盖了语言提示(prompts)、模型(models)和解析器(parsers)。这个模块集合了自然语言处理中的关键要素,以便有效地解析用户输入并产生准确的输出。如下图所示:

  • Prompts:负责请求数据的准备步骤。
  • Model:负责具体请求和参数。
  • Parser:负责请求结果返回后的处理步骤。

三者共同作用,完整的覆盖了整个大模型请求。

工作原理

  1. 语言提示(Prompts):

PromptsModelsParsers 模块通过使用预先定义的语言提示(例如,问题模板或任务指令)来引导用户输入。这些提示是为了激活特定类型的语言处理任务,使得模型能够更好地理解用户意图。

  1. 模型(Models):

该模块整合了多种语言模型,这些模型经过训练,能够处理各种语言任务,如文本生成、语义理解、情感分析等。PromptsModelsParsers 利用这些模型来处理用户输入,并生成相应的输出。

  1. 解析器(Parsers):

解析器是模块中的关键组成部分,它负责解析和理解用户输入。这包括对输入进行结构化分析,提取关键信息并将其传递给适当的模型进行处理。解析器的优化可以大幅提高系统的准确性和效率。

功能与应用

PromptsModelsParsers 模块的功能涵盖了广泛的应用领域:

  • 自然语言理解(NLU):模块能够理解用户提出的问题、命令或需求,并进行语义分析,使系统能够准确地回应用户。
  • 智能交互:LangChain 借助这一模块实现了智能对话功能,使得系统能够更加自然地与用户交流。
  • 任务处理:通过语言提示的引导和模型的支持,模块可以帮助处理各种任务,如日程安排、搜索、语言翻译等。

使用示例

下面是我们的应用例子:

# LangChain相关模块的导入
from langchain.output_parsers import ResponseSchema, StructuredOutputParser
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
key = 'open_ai_key'
# 创建OpenAI调用实例
# temperature用来设置大模型返回数据的随机性和创造性,较低的数值返回的数据就更贴近现实。
chat = ChatOpenAI(temperature=0.0, openai_api_key=key)
# 可复用的模板字符串,注意不要使用 f字符串 ,LangChain会在运行时自动替换
template_str = """\
  text: {text}
  {format_instructions}
"""
# 针对prompt中的每个想要提取的属性,创建ResponseSchema记录字段名称和描述,用于后续解析返回数据
time_schema = ResponseSchema(name="时间", description="事件发生的准确时间")
location_schema = ResponseSchema(name="地点", description="事情发生时,讲述人所处的城市名称")
event_schema = ResponseSchema(name="事件", description="文中主要讲述的具体事件是发生了什么事件")
situation_schema = ResponseSchema(
    name="现象",
    description="列举出事件发生时,出现的每个现象,每个现象作为列表中的单独一项"
)
# 将全部的属性描述schema组装成列表,生成相应值结构化解析器
response_schemas = [time_schema, location_schema, event_schema, situation_schema]
output_parser = StructuredOutputParser.from_response_schemas(response_schemas)
# 根据schema格式定义,自动生成一个支持格式化输出的prompt
format_instructions = output_parser.get_format_instructions()

# 根据模板和数据,生成完整成prompt请求数据
prompt_template = ChatPromptTemplate.from_template(template_str)
custom_message = prompt_template.format_messages(
    text="2023年11月11日下午16:29分,我在北京坐在沙发上看比赛,S13全球总决赛半决赛第一天,TheShy的兰博在天崩开局之下,成功反杀对面,我瞬间感觉我也被兰博烤红了,TheShy就是神!",
    format_instructions=format_instructions
)
# 调用大模型发起请求
customer_res = chat(custom_message)
# 根据结构化解析器,解析返回数据,获取类型正确的数据结果
result = output_parser.parse(customer_res.content)
print(result)
print(type(result))

--------
返回结果如下:
{'时间':'2023年11月11日下午16:29分', '地点':'北京', '事件':'S13全球总决赛半决赛', '现象':['TheShy兰博天崩开局', '成功反杀对面', '我也被烤红了', 'TheShy就是神']}

未来展望

LangChainPromptsModelsParsers 模块是语言处理技术不断发展的一部分。随着深度学习和自然语言处理领域的进步,预计这一模块将会不断演进和优化,为用户提供更加智能、高效的语言处理体验。

总结

本文主要介绍了LangChainPromptsModelsParsers 模块,介绍了它的原理以及功能运用,并且举例说明了它们的工作步骤,总的来说,PromptsModelsParsers 模块是 LangChain 中不可或缺的一环,它的高效运作为整个平台的功能提供了坚实的基础,为用户带来了更加智能和便捷的语言处理体验。

获取更多技术资料,请点击!

标签:PromptsModelsParsers,处理,模型,LangChain,模块,软件测试,schema
From: https://www.cnblogs.com/hogwarts/p/17860007.html

相关文章

  • 软件测试/人工智能|什么是LangChain,这篇文章告诉你
    简介随着人工智能和自然语言处理技术的飞速发展,我们越来越依赖机器来理解、生成和处理语言。在这样的背景下,LangChain应运而生,它旨在构建一个高效、强大的语言处理生态系统,将人类语言与智能技术紧密相连。LangChain的核心概念LangChain是一个基于区块链技术的语言处理平台,它利用去......
  • 软件测试/人工智能|LangChain Memory模块:开启语言数据的存储与回忆之旅
    简介大多数大模型应用中都包含对话功能,而对话功能的基础就是参与者能够基于已经发生的对话和获取到的知识产生新的对话内容。更复杂一点的场景中对话者甚至需要具有一个完整的对世界的认知,再根据对话中的信息对认知不断的进行迭代更新。随着人工智能和自然语言处理技术的飞速发展,语......
  • 如何在langchain中对大模型的输出进行格式化
    简介我们知道在大语言模型中,不管模型的能力有多强大,他的输入和输出基本上都是文本格式的,文本格式的输入输出虽然对人来说非常的友好,但是如果我们想要进行一些结构化处理的话还是会有一点点的不方便。不用担心,langchain已经为我们想到了这个问题,并且提出了完满的解决方案。lan......
  • 建议学习软件测试吗?不建议!
    相比较大多数行业,IT行业薪资比较高。如果你问我,是否建议学习软件测试。我的回答是,不建议!学历太高不建议学习,你可以挑战天花板更高的软件开发行业;学历太低不建议学习,没有全日制专科以上学历基本找不到工作;年龄太大不建议学习,软件测试可能同样存在年龄歧视;不想编程不建议学习,......
  • 软件测试面试怎样介绍自己的测试项目?会问到什么程度?
    想知道面试时该怎样介绍测试项目?会问到什么程度?那就需要换位思考,思考HR在这个环节想知道什么。HR在该环节普遍想获得的情报主要是下面这2个方面:1)应聘者的具体经验和技术能力,2)应聘者的团队的沟通能力、合作能力和问题解决能力。了解到HR目的后,我们就能预判出项目面试题的广度......
  • 软件测试/人工智能|AutoGPT原理与架构介绍
    简介我们生活中已经有越来越多的人工智能融入了,手机汽车等等接入了越来越多的人工智能,人工智能就像是我们的一个助手一样。不仅能够理解我们的需求,而且还能够与我们一起学习与成长。人工智能已无缝融入我们工作、生活,并帮助我们有效完成各种目标。大模型技术的发展与应用,使以上想法......
  • 软件测试/人工智能|教你如何使用ChatGPT的API
    简介自从有了ChatGPT之后,我每天都想去调戏它一番,自从开放了ChatGPT的API,我就想着通过API来使用ChatGPT,这样的话,速度上的体验应该会更好,本文就来介绍一下如何使用ChatGPT的API。环境准备在调用API之前,我们首先需要准备好我们的环境,一是我们需要安装openAI第三方库,OpenAI提供了一个......
  • 软件测试/人工智能|一文教你如何配置自己的AutoGPT
    简介AutoGPT是Github上的一个免费开源项目,结合了GPT-4和GPT-3.5技术,通过API创建完整的项目。与ChatGPT不同的是,用户不需要不断对AI提问以获得对应回答,在AutoGPT中只需为其提供一个AI名称、描述和五个目标,然后AutoGPT就可以自己完成项目。它可以读写文件、浏览网页、审查自己提示的......
  • 软件测试/人工智能|AutoGPT原理与架构介绍
    简介我们生活中已经有越来越多的人工智能融入了,手机汽车等等接入了越来越多的人工智能,人工智能就像是我们的一个助手一样。不仅能够理解我们的需求,而且还能够与我们一起学习与成长。人工智能已无缝融入我们工作、生活,并帮助我们有效完成各种目标。大模型技术的发展与应用,使以上......
  • 火焰杯软件测试竞赛颁奖典礼在长春工业大学举行
    2023年《火焰杯》软件测试大赛圆满落幕,汇聚全国158所高校的3221名参赛者。宁静峰老师悉心指导的学生群,以其出色表现引人注目,斩获8项大奖。其中,赵家毅同学脱颖而出,荣获全国第三,并斩获国赛二等奖殊荣;另外7位同学分别位列第11、13、19、22(并列)、24(并列),为学校创下了历史性的......