南京seo推广优化专业的网站优化公司排名

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

南京seo推广优化,专业的网站优化公司排名,有那个网站做简历模板,wordpress 替代 php摘要#xff1a; 本文介绍了langchain.prompts中基础的提示词模板的高级用法#xff0c;包括利用PipelinePrompt组合Prompt使用#xff0c;多模态场景、动态占位符的使用等进行了介绍。 文章目录 1. 背景2. PipelinePrompt2.1 组合两个Prompt模板2.2 多模态模板 3. 聊天提示… 摘要 本文介绍了langchain.prompts中基础的提示词模板的高级用法包括利用PipelinePrompt组合Prompt使用多模态场景、动态占位符的使用等进行了介绍。 文章目录 1. 背景2. PipelinePrompt2.1 组合两个Prompt模板2.2 多模态模板 3. 聊天提示词模板4. 占位符MessagesPlaceholder4.1 基本用法4.2 多轮对话4.3 可选占位符配置4.4 动态示例选择 1. 背景 在实际应用中提示词通常并非单一使用而是多种模板结合起来使用尤其在大型的Agent中好的提示词模板设计对后续的开发会起到事半功倍的效果。

  1. PipelinePrompt PipelinePrompt是LangChain框架中用于组合多个Prompt模板的核心组件它通过模块化设计实现Prompt的复用和灵活组装。其核心思想类似于软件开发中的管道模式Pipeline Pattern将多个处理步骤串联成流水线前序步骤的输出作为后续步骤的输入。 2.1 组合两个Prompt模板 示例 from langchain.prompts.pipeline import PipelinePromptTemplate from langchain.prompts.prompt import PromptTemplate# 定义子模板1系统指令 intro_template PromptTemplate.from_template(你是一个专业翻译负责将{input_language}翻译为{output_language}: )

    定义子模板2翻译示例

    example_template PromptTemplate.from_template(示例{example_input} - {example_output} )# 组合为完整PipelinePrompt full_prompt PipelinePromptTemplate(final_promptPromptTemplate.from_template({intro}\n{example}\n请翻译{text}),pipeline_prompts[(intro, intro_template),(example, example_template)] )# 使用示例 print(full_prompt.format(input_language英文,output_language中文,example_inputHello,example_output你好,textGood morning )) 输出 你是一个专业翻译负责将英文翻译为中文: 示例Hello - 你好 请翻译Good morning2.2 多模态模板 以下是一个结合视觉和文本的多模态PipelinePromptTemplate示例用于生成图片描述并回答相关问题。 from langchain.prompts.pipeline import PipelinePromptTemplate from langchain.prompts import PromptTemplate import base64 import httpx# 子模板1图片描述生成 vision_template PromptTemplate.from_template(分析这张图片{image_base64}\n请列出图中3个最显著的特征如物体、颜色、动作 )# 子模板2问题回答 qa_template PromptTemplate.from_template(基于以下图片特征{vision_analysis}\n回答用户问题{user_question}\n要求包含对图片特征的引用 )# 构建多模态流水线 multimodal_prompt PipelinePromptTemplate(final_promptPromptTemplate.from_template(多模态问答系统\n{vision_part}\n{qa_part}),pipeline_prompts[(vision_part, vision_template),(qa_part, qa_template)] )# 使用示例需替换真实图片URL image_url https://example.com/park.jpg image_data base64.b64encode(httpx.get(image_url).content).decode(utf-8)formatted_prompt multimodal_prompt.format(image_base64fImage{image_data},user_question图中人们在做什么活动 ) print(formatted_prompt) 该示例演示了如何分阶段处理多模态输入先提取视觉特征再结合特征回答问题。实际运行时需要接入多模态模型来处理图像数据。

  2. 聊天提示词模板 聊天模型中的四种消息AIMessage、HumanMessage、SystemMessage、ChatMessage分别对应着4种聊天消息模板AIMessagePromptTemplate、HumanMessagePromptTemplate、SystemMessagePromptTemplate、ChatMessagePromptTemplate    可以通过这些模板构建引导整个会话流程。典型的工作流程 System设定角色和规则Human收集用户输入AI按预定格式响应通过ChatPromptTemplate组合成完整对话链

  3. SystemMessagePromptTemplate‌ 设定AI角色和对话规则 from langchain.prompts import SystemMessagePromptTemplatesystem_template 你是一位专业心理咨询师用温暖平和的方式回答用户问题 system_prompt SystemMessagePromptTemplate.from_template(system_template)

    输出SystemMessage(content你是一位…, additional_kwargs{})

    ‌2. HumanMessagePromptTemplate结构化用户输入 from langchain.prompts import HumanMessagePromptTemplatehuman_template 我的问题是关于{topic}具体情况{details} human_prompt HumanMessagePromptTemplate.from_template(human_template)

    使用human_prompt.format(topic失眠, details连续一周睡不着)

    ‌3. AIMessagePromptTemplate控制AI响应格式 from langchain.prompts import AIMessagePromptTemplateai_template 建议方案

  4. {solution1}

  5. {solution2} ai_prompt AIMessagePromptTemplate.from_template(ai_template)

    输出带编号列表的响应

  6. ChatPromptTemplate 构建完整对话流程 from langchain.prompts import ChatPromptTemplatechat_template ChatPromptTemplate.from_messages([system_prompt,human_prompt,ai_prompt ])chain chat_template | ChatOpenAI() chain.invoke({topic: 焦虑, details: 考前心慌,solution1: 深呼吸练习,solution2: 制定复习计划 }) 5.多模态支持 实际应用中通常需要支持在单个PromptTemplate中组合文本、图像URL等数据类型例如构建包含图像和文本的多模态消息。 edu_prompt ChatPromptTemplate.from_messages([SystemMessage(content你是数学辅导AI需\n1. 识别手写答案\n2. 指出错误步骤),# 保留最近3轮对话MessagesPlaceholder(variable_namedialogue, optionalTrue),# 混合输入HumanMessage(content[{type: text, text: 问题{question}},{type: image_url, image_url: {handwriting}},{type: audio_url, audio_url: {voice_note}}]) ])# 调用示例无历史对话时 prompt edu_prompt.format_messages(question求x²2x10的解,handwritinghttps://example.com/student_work.jpg,voice_notehttps://example.com/voice_q.mp3 )

  7. 占位符MessagesPlaceholder MessagesPlaceholder是LangChain中用于动态插入消息列表的占位符组件属于BaseMessagePromptTemplate的子类。它允许在构建聊天提示模板时预留位置后续通过变量注入实际消息内容。 动态消息插入支持在运行时填充任意数量的消息如对话历史。多角色兼容可处理SystemMessage、HumanMessage、AIMessage等混合类型消息。条件控制通过optional参数控制占位符是否必填。 4.1 基本用法 from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain_core.messages import HumanMessage, SystemMessage# 定义包含占位符的模板 chat_prompt ChatPromptTemplate.from_messages([SystemMessage(content你是一个助手),MessagesPlaceholder(variable_namehistory),HumanMessage(content{input}) ])# 填充实际消息 formatted chat_prompt.format_messages(history[HumanMessage(content你好),AIMessage(content有什么可以帮您)],input今天天气如何 ) 4.2 多轮对话 结合ConversationBufferMemory实现上下文保持 from langchain.memory import ConversationBufferMemorymemory ConversationBufferMemory(return_messagesTrue) memory.save_context({input: 推荐一本小说}, {output: 《三体》值得一读} )# 使用记忆中的历史对话 prompt_with_history chat_prompt.format_messages(historymemory.load_memory_variables({})[history],input作者是谁 ) 4.3 可选占位符配置 optional_placeholder MessagesPlaceholder(variable_namehistory, optionalTrue ) # 未提供变量时返回空列表:ml-citation{ref2 datacitationList} 4.4 动态示例选择 在Few-shot场景中通过MessagesPlaceholder动态插入示例对话 few_shot_prompt ChatPromptTemplate.from_messages([SystemMessage(content根据示例回答问题),MessagesPlaceholder(examples),HumanMessage(content{question}) ])