wordpress企业建站视频,wordpress 文章名翻译,wordpress如何试下背景页面广告,网站建设费用 计入什么科目Langchain的Model可以分为3块1.提示词模板: LangChain的模板允许动态选择输入#xff0c;根据实际需求调整输入内容#xff0c;适用于各种特定任务和应用。 2.语言模型: LangChain 提供通用接口调用不同类型的语言模型#xff0c;提升了灵活性和使用便利性。 3.输出解析: 利…Langchain的Model可以分为3块1.提示词模板: LangChain的模板允许动态选择输入根据实际需求调整输入内容适用于各种特定任务和应用。2.语言模型: LangChain 提供通用接口调用不同类型的语言模型提升了灵活性和使用便利性。3.输出解析: 利用 LangChain 的输出解析功能精准提取模型输出中所需信息避免处理冗余数据同时将非结构化文本转换为可处理的结构化数据提高信息处理效率。提示词模板提示词模板是一个模板化的字符串可以用来生成特定的提示prompts。你可以将变量插入到模板中从而创建出不同的提示。提示词模板的类型LLM提示模板 PromptTemplate常用的String提示模板聊天提示模板 ChatPromptTemplate 常用的Chat提示模板用于组合各种角色的消息模板传入聊天模型。消息模板包括ChatMessagePromptTemplate、HumanMessagePromptTemplate、AIlMessagePromptTemplate、SystemMessagePromptTemplate等样本提示模板 FewShotPromptTemplate通过示例来教模型如何回答部分格式化提示模板提示模板传入所需值的子集以创建仅期望剩余值子集的新提示模板。管道提示模板 PipelinePrompt 用于把几个提示组合在一起使用。自定义模板允许基于其他模板类来定制自己的提示模板。提示词模板的特点清晰易懂的提示: 提高提示文本的可读性使其更易于理解尤其是在处理复杂或涉及多个变量的情况下。增强可重用性: 使用模板可以在多个地方重复使用简化代码无需重复构建提示字符串。简化维护: 使用模板后如果需要更改提示内容只需修改模板无需逐个查找所有用到该提示的地方。智能处理变量: 模板可以自动处理变量的插入无需手动拼接字符串。参数化生成: 模板可以根据不同的参数生成不同的提示有助于个性化文本生成。String提示模板Langchain的字符串提示词模板与 format 的字符串替换的功能基本一致。import os from dotenv import load_dotenv from langchain.chains.qa_with_sources.stuff_prompt import template from langchain_core.prompts import PromptTemplate from langchain_openai import ChatOpenAI load_dotenv() # Langchain的字符串提示词模板与 format 的字符串替换差不多 #1.构建大模型实例 model ChatOpenAI(api_keyos.getenv(DASHSCOPE_API_KEY), base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1, modelqwen-plus) #2.构建提示词模板 Prompt PromptTemplate( template 你是一个大模型开发工程师你的任务是根据报错排查问题。用户的报错是: {input} ) #3.使用提示词模板构建提示词 input Prompt.format( input 报错信息 ) print(input) #4.调用大模型 res model.invoke(input) print(res)聊天提示词模板与普通的字符串模板相比聊天提示词模板的不同之处是它们有对应的角色。LangChain提供不同类型的MessagePromptTemplate.最常用的是AIMessagePromptTemplate、 SystemMessagePromptTemplate和HumanMessagePromptTemplate分别创建人工智能消息、系统消息和人工消息from dotenv import load_dotenv from langchain_core.prompts import SystemMessagePromptTemplate, HumanMessagePromptTemplate, ChatPromptTemplate load_dotenv() # 系统模板的构建 sys_template 你是一个翻译专家,擅长将 {input_language} 语言翻译成 {output_language}语言. sts_message_prompt SystemMessagePromptTemplate.from_template(sys_template) # 用户模版的构建 human_template {text} human_template_prompt HumanMessagePromptTemplate.from_template(human_template) # 组装成最终模版 prompt_template ChatPromptTemplate.from_messages([sts_message_prompt, human_template_prompt]) # 格式化提示消息生成提示 prompt prompt_template.format_prompt(input_language英文, output_language中文, textI love Large Language Model.).to_messages() # 打印模版 print(prompt:, prompt)少量样板提示少量提示词模板与字符串提示词模板相比多了提供的案例大模型可以根据这些案例来回答问题。import os import langchain_openai from dotenv import load_dotenv from langchain_core.prompts import PromptTemplate, FewShotPromptTemplate load_dotenv() # 创建示例 examples [ {input: 22, output: 4, description: 加法运算}, {input: 5-2, output: 3, description: 减法运算}, ] # 提示词模板 prompt_template 你是一个数学专家,算式 {input} 值 {output} 使用 {description} prompt_sample PromptTemplate.from_template(prompt_template) prompt FewShotPromptTemplate( examplesexamples, example_promptprompt_sample, # 告诉大模型要按照这个格式输出description suffix你是一个数学专家,请计算 {input} 值 {output} , input_variables[input, output], ) llm langchain_openai.ChatOpenAI(api_keyos.getenv(DASHSCOPE_API_KEY), base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1, model_nameqwen-plus) result llm.invoke(prompt.format(input2*5, output10)) print(result.content) # 使用: 乘法运算Model 模型LangChain支持的模型有三大类1.大语言模型LLM 这些模型将文本字符串作为输入并返回文本字符串作为输出。2.聊天模型Chat Model这些模型将聊天消息列表作为输入并返回聊天消息。3.文本嵌入模型Embedding Model也就是Embedding向量模型。大语言模型LLMLangChain的核心组件是大型语言模型LLM以字符串作为输入并返回字符串的形式与不同的LLM进行交互。from langchain_community.llms import Tongyi from dotenv import load_dotenv import os load_dotenv() # LLM纯文本补全模型 llm Tongyi(api_keyos.getenv(DASHSCOPE_API_KEY), base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1, modelqwen-plus) text 我的真的好想帮我补全这个文本 res llm.invoke(text) print(res)聊天模型聊天模型是LangChain的核心组件使用聊天消息作为输入并返回聊天消息作为输出。LangChain有一些内置的消息类型SystemMessage:用于启动 AI 行为通常作为输入消息序列中的第一个传递。HumanMessage:表示来自与聊天模型交互的人的消息。AIMessage:表示来自聊天模型的消息。这可以是文本也可以是调用工具的请求import os from dotenv import load_dotenv from langchain_community.llms.tongyi import Tongyi from langchain_core.messages import SystemMessage, HumanMessage load_dotenv() human_text 什么是langchain system_text 你是一个大模型开发工程师你的名字叫小六 # 构建大模型对象 llm Tongyi( api_keyos.getenv(DASHSCOPE_API_KEY), base_urlos.getenv(DASHSCOPE_API_BASE_URL), modelqwen-plus ) # 构建提示词对象 messages [SystemMessage(contentsystem_text), HumanMessage(contenthuman_text)] print(messages) res llm.invoke(messages) print(res)文本嵌入模型Embedding类是一个用于与嵌入进行交互的类。有许多嵌入提供商OpenAI、Cohere、Hugging Face等)- 这个类旨在为所有这些提供商提供一个标准接口。import os from dotenv import load_dotenv from langchain_community.embeddings import DashScopeEmbeddings load_dotenv() # 构建向量模型对象 embeddings DashScopeEmbeddings( dashscope_api_keyos.getenv(DASHSCOPE_API_KEY), modeltext-embedding-v3 ) # 获取文本嵌入向量 text 大模型 # 文档进行嵌入 doc_res embeddings.embed_documents([text]) print(doc_res) # 问题嵌入 query_res embeddings.embed_query(text) print(query_res)本地模型# 安装模块 pip install sentence_transformers from modelscope import snapshot_download # maidalun/bce-embedding-base_v1 模型名字 cache_dir下载位置 # model_dir snapshot_download(maidalun/bce-embedding-base_v1, cache_dirD:\大模型\RAG_Project) # langchain_huggingface 加载huggingface模型 from langchain_huggingface import HuggingFaceEmbeddings # 创建嵌入模型 model_name rD:\LLM\Local_model\BAAI\bge-large-zh-v1___5 # 生成的嵌入向量将被标准化, 有助于向量比较 encode_kwargs {normalize_embeddings: True} embeddings HuggingFaceEmbeddings( model_namemodel_name, encode_kwargsencode_kwargs ) text 大模型 query_result embeddings.embed_query(text) print(query_result[:5])