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

陕西网站制作公司哪家好移投界seo

陕西网站制作公司哪家好,移投界seo,网站建设视频 备份 反代,装修计算器在线计算一、简介Prompt 在大模型应用中有一个概念叫做Prompt,我们来看一下百度百科对Prompt的定义。 prompt中文为“提示词”。在AI大模型中,Prompt的作用主要是给AI模型提示输入信息的上下文和输入模型的参数信息。 所以我们可以知道Prompt其实就是你问大模型…

一、简介Prompt

在大模型应用中有一个概念叫做Prompt,我们来看一下百度百科对Prompt的定义。

prompt中文为“提示词”。在AI大模型中,Prompt的作用主要是给AI模型提示输入信息的上下文和输入模型的参数信息。

所以我们可以知道Prompt其实就是你问大模型的输入语言,也就是我们作为用户和大模型交互的输入。

二、关于PromptTemplate

看名字也能猜个七七八八,他是对我们用户输入大模型的一种模版配置。也就是说你可以按照你的模版来规范输入。我们制定一个模板,后面的输入都按照这个模板的语法格式,语言排布来输入,这样我们输入固定,起码输出就不会太离谱。
实际上prompt在大模型领域是个重要的概念,一个好的prompt是能提高你输出结果的质量的。
那我们来看一下langchain中的prompt的一些实现功能。
首先我们来看一下prompt的官方文档。
首先它位于langchain_core.prompts这个包下面,然后我们来看看他的类继承结构。
在这里插入图片描述
第一眼,麻了,作为一个javaer,这个图我看到的第一眼就想起了spring那一堆工厂类的结构。属实是太难顶了。然后我们在spring中的经验可以拿来用一下,我们说子类一般是更强大更全面的。我们看到它其实底下有很多字类,其中的PromptTemplate是我们通用语言模型的提示模板。我们当前正在处理的就是语言类的一个对话交互。所以我们就单独来看他。
在这里插入图片描述
ok,我们点进去看看他怎么用。PromptTemplate

1、PromptTemplate class

提示模板由字符串模板组成。它接受来自用户的一组参数,这些参数可用于为语言模型生成提示。
可以使用 f-strings (默认)、jinja2 或 mustache 语法对模板进行格式化。
其实就和我们在java中的String.format那种字符串占位差不多。
使用案例如下:

from langchain_core.prompts import PromptTemplate# 这里就是你的字符串模板,并且可以设置占位符
prompt = PromptTemplate.from_template("Say {foo}")
# 这里是给占位符设置值,也就是填充你的模板
prompt.format(foo="bar")此时我们就得到了一个prompt,就可以作为输入传给大模型了。

下面我们就接着我们上文中的例子来使用一下。

from langchain_core.prompts import PromptTemplate
from langchain_ollama import ChatOllama#  构建llm
llm = ChatOllama(base_url = "http://127.0.0.1:11434",model = "deepseek-r1:8b",temperature = 0.5,num_predict = 500,max_tokens = 250
)#  构建一个PromptTemplate,我们设置一个模板占位
promptTemplate = PromptTemplate.from_template("请问{model}模型的优点有哪些?")
#  传入占位,我们填充占位
prompt = promptTemplate.format(model = "deepseek")# 执行我们填充好的prompt
content = llm.invoke(prompt).content
# 输出执行结果正文,我们就不输出那些元数据了,干扰观察
print(f"大模型回答的结果正文是{content}")
大模型回答的结果正文是<think>省略思考过程
</think>DeepSeek模型具有以下优点:1. **跨领域知识应用**:能够处理各种问题,不受特定领域限制,适用于多种场景。2. **多模态输入处理**:支持文本、图像、音频等多种数据类型的输入,提供更全面的信息分析。3. **高效推理速度和资源利用率**:在保持性能的同时,节省计算资源,适合实时任务。4. **强大的自我学习能力**:从经验中学习并优化,适应复杂情况,提升处理能力。5. **灵活性

我们可以看到他是没毛病的。并且此时我们可以去langsmith中看一下,都是可以监控到的。
ok,至此我们完成了PromptTemplate输入模板。但是我们来看一个现象。
在这里插入图片描述
你大致能看出来每次输出的结果不太一样,而且吧,有时候结构还不太一样,假如我们要给客户使用,每次输出的结果不太一样好像还能接受,大致意思一样就行。但是你结构不一样这个就很难顶。
再比如你问ai,给我描述一下各国的文学,他其实会给你上网去找或者基于他的知识库去回答。你会得到一个很粗的描述结果。但是你说假如你是一个java开发者,你给我描述一下各国的文学,那他就会站在java开发的角度去回答,这样的结果可能是你更关注的。所以我们需要设置这样的一个角色,或者模板之类的配置。约束一下大模型的输出,也要有一个模板。这个模板叫做ChatPromptTemplate

2、ChatPromptTemplate

ok,我们来描述两个场景。
1、介绍一下当前的经济环境。
2、假如你是一个研究山西经济的专家,介绍一下当前的经济环境。
这两个问题,我们明显有一个前置条件告诉大模型。所以我们来看如何实现以及结果如何。
场景1不说了,我们上面PromptTemplate就是这样的。我们来看场景二。
场景二中我们告诉了大模型一个既定的事实,让他基于这个身份去做出回答。我们来看。文档
我们按照文档中的示例来实现我们这个需求。

from langchain_core.prompts import ChatPromptTemplate
from langchain_ollama import ChatOllamallm = ChatOllama(base_url = "http://127.0.0.1:11434",model = "deepseek-r1:8b",temperature = 0.5,num_predict = -2,max_tokens = 250
)# 配置模板,分别设置系统模板和客户模板,human其实就是你要问啥,作为你这个角色来配置
# system就是你告诉大模型的一个前提,让他去干啥
promptTemplate = ChatPromptTemplate([("system", "假如你是一个研究{cityMajor}的专家。"),("human", "介绍一下当前的经济环境。"),
])
# 填充模板
prompt = promptTemplate.invoke({"cityMajor": "山西经济"})
content = llm.invoke(prompt).content
print(f"大模型回答的结果正文是{content}")

很显然,他是会按照他是山西经济专家这个角色来回答我们的问题的。
在这里插入图片描述
ok,我们再来看一个,其实这个ChatPromptTemplate我们配置了两个内容一个是system一个是human,其实等于我们弄了两个模板,组合到一起了,实际上这个很像netty中的那个编解码器,他还有一组子类。
分别是SystemMessagePromptTemplate和HumanMessagePromptTemplate。你可以分别配置这两个模板类,然后组合起来效果是一样的。

from langchain_core.prompts import (ChatPromptTemplate,SystemMessagePromptTemplate,HumanMessagePromptTemplate
)
from langchain_ollama import ChatOllamallm = ChatOllama(base_url = "http://127.0.0.1:11434",model = "deepseek-r1:8b",temperature = 0.5,num_predict = -2,max_tokens = 250
)
# 分别构建system和human两个模板,和上面的一起构建是一样的
sysTemplate = SystemMessagePromptTemplate.from_template("假如你是一个研究{cityMajor}的专家。")
humanTemplate = HumanMessagePromptTemplate.from_template("介绍一下当前的经济环境。")promptTemplate = ChatPromptTemplate([sysTemplate,humanTemplate
])prompt = promptTemplate.invoke({"cityMajor": "山西经济"})
content = llm.invoke(prompt).content
print(f"大模型回答的结果正文是{content}")

只不过这种看起来比较麻烦一点。
当然了还有一些能够简化的比如MessagesPlaceholder 这个你也可以试试。

三、扩展

其余还有一些类,我们可以使用起来来简化这个流程。
比如core包下面的messages

core.prompt包下的MessagesPlaceholder 都可以参照着文档来对程序进行扩展。

http://www.dtcms.com/wzjs/226352.html

相关文章:

  • wordpress教育汉化主题泉州seo
  • 阿里企业邮箱客服电话seo最新技巧
  • 建设工程交易平台厦门百度推广排名优化
  • wordpress判断使用不同模板seo百度首页排名业务
  • 在深圳市做一个网站多少钱seo咨询推广找推推蛙
  • 网页设计培训全名产品seo标题是什么
  • 长沙网站seo优化排名手机营销推广方案
  • 网站要什么软件做做app找什么公司
  • 如何做网站logo互联网关键词优化
  • 有关网页设计与网站建设的文章个人建网站步骤
  • 宁夏中卫市林业生态建设局网站优化设计六年级下册语文答案
  • 昆山住房和城乡建设局网站百度知道客服电话人工服务
  • 小说网站排行榜前十名九易建网站的建站流程
  • 个人做网站有人看片吗免费的
  • 国内最好软件网站建设全网营销型网站
  • 厦门首屈一指的网站建设公司刚刚北京传来重大消息
  • 网站建设做到哪些内容宁波正规优化seo公司
  • 高明网站建设哪家好今天最新新闻报道
  • 惠州网站建设是什么意思河南网站建设
  • 如何自建网站入口网站建设步骤流程详细介绍
  • 你做我评网站会自动查论文相似度吗广告精准推广平台
  • app 网站开发公司网站单向外链推广工具
  • 网站seo课程微信广告
  • 做国外营销型网站设计电子商务网站建设规划方案
  • 站长工具seo综合查询张家界新娘免费推广
  • 专门为网站建设服务的公司seo页面内容优化
  • 做版面的网站怎么投稿各大媒体网站
  • 湖南省政府 网站建设360推广
  • 安徽太和有没有做网站的2023年4 5月份疫情结束吗
  • 辣条类网站建设规划书个人网站制作模板