Skip to content

语言图谱工作室中的提示工程

在LangGraph Studio中,提示工程是指设计和优化用于生成特定输出的提示的过程。这包括对自然语言处理模型的输入进行精细调整,以获得所需的响应或结果。

Key Concepts

关键概念

在开始之前,了解一些关键概念将有助于您更好地理解如何在LangGraph Studio中创建有效的提示。

Prompt Structure

提示结构

一个有效的提示应该清晰地定义任务,并提供足够的上下文来引导模型生成期望的输出。

Parameters

参数

您可以调整各种参数来影响模型的行为,例如温度(temperature)、重复惩罚(repetition penalty)等。

Creating Effective Prompts

创建有效的提示

要创建一个有效的提示,首先需要明确您的目标是什么,然后根据这些目标来构建提示。

Step-by-Step Guide

分步指南

  1. Define the Task: 明确您希望模型完成的任务。
  2. Provide Context: 给出必要的背景信息,以便模型能够正确理解任务。
  3. Adjust Parameters: 根据需要调整模型的参数,以控制输出的质量和多样性。
  4. Test and Iterate: 测试提示并根据反馈迭代改进。

Best Practices

最佳实践

遵循以下最佳实践可以帮助您更有效地使用LangGraph Studio。

Be Specific

具体明确

尽量具体地描述任务,避免模糊不清的表述。

Use Examples

使用示例

提供具体的示例可以帮助模型更好地理解预期的输出格式。

Monitor Outputs

监控输出

仔细检查模型的输出,确保它们符合您的需求。

Conclusion

结论

通过精心设计和优化提示,您可以充分利用LangGraph Studio的功能,生成高质量的自然语言处理输出。


IMG_PLACEHOLDER_1


IMG_PLACEHOLDER_2

概览

代理开发的一个核心方面是提示工程。LangGraph Studio使得可以直接在用户界面上迭代您的图中使用的提示变得非常简单。

设置

第一步是定义你的配置,使得LangGraph Studio能够识别出你想要迭代的提示以及它们所关联的节点。

参考

在定义配置时,你可以使用特殊的元数据键来指示LangGraph Studio如何处理不同的字段。以下是可用配置选项的参考:

langgraph_nodes

  • 描述:指定配置字段关联的图节点。
  • 值类型:字符串数组,其中每个字符串都是图中一个节点的名字。
  • 使用上下文:包含在Pydantic模型的json_schema_extra字典或数据类的metadata["json_schema_extra"]字典中。
  • 必填项:否,但如果你希望某个字段在UI中对特定节点可编辑,则是必需的。
  • 示例
    system_prompt: str = Field(
        default="您是一个乐于助人的AI助手。",
        json_schema_extra={"langgraph_nodes": ["call_model", "other_node"]},
    )
    

langgraph_type

  • 描述:指定配置字段的类型,这决定了它在UI中的处理方式。
  • 值类型:字符串
  • 支持的值
  • "prompt":表示该字段包含提示文本,在UI中应特别处理。
  • 使用上下文:包含在Pydantic模型的json_schema_extra字典或数据类的metadata["json_schema_extra"]字典中。
  • 必填项:否,但有助于提示字段启用特殊处理。
  • 示例
    system_prompt: str = Field(
        default="您是一个乐于助人的AI助手。",
        json_schema_extra={
            "langgraph_nodes": ["call_model"],
            "langgraph_type": "prompt",
        },
    )
    

示例

例如,如果你有一个名为call_model的节点,你想迭代其系统提示,可以定义如下配置。

## 使用Pydantic
from pydantic import BaseModel, Field
from typing import Annotated, Literal

class Configuration(BaseModel):
    """代理的配置。"""

    system_prompt: str = Field(
        default="您是一个乐于助人的AI助手。",
        description="用于代理交互的系统提示。"
        "此提示设置代理的背景和行为。",
        json_schema_extra={
            "langgraph_nodes": ["call_model"],
            "langgraph_type": "prompt",
        },
    )

    model: Annotated[
        Literal[
            "anthropic/claude-3-7-sonnet-latest",
            "anthropic/claude-3-5-haiku-latest",
            "openai/o1",
            "openai/gpt-4o-mini",
            "openai/o1-mini",
            "openai/o3-mini",
        ],
        {"__template_metadata__": {"kind": "llm"}},
    ] = Field(
        default="openai/gpt-4o-mini",
        description="用于代理主要交互的语言模型名称。"
        "应采用形式:provider/model-name。",
        json_schema_extra={"langgraph_nodes": ["call_model"]},
    )

## 使用Dataclasses
from dataclasses import dataclass, field

@dataclass(kw_only=True)
class Configuration:
    """代理的配置。"""

    system_prompt: str = field(
        default="您是一个乐于助人的AI助手。",
        metadata={
            "description": "用于代理交互的系统提示。"
            "此提示设置代理的背景和行为。",
            "json_schema_extra": {"langgraph_nodes": ["call_model"]},
        },
    )

    model: Annotated[str, {"__template_metadata__": {"kind": "llm"}}] = field(
        default="anthropic/claude-3-5-sonnet-20240620",
        metadata={
            "description": "用于代理主要交互的语言模型名称。"
            "应采用形式:provider/model-name。",
            "json_schema_extra": {"langgraph_nodes": ["call_model"]},
        },
    )

优化提示

节点配置

设置完成后,在LangGraph Studio中运行您的图并将结果显示出来,将会看到如下所示的图。

注意“call_model”节点右上角的配置图标

Studio中的图

点击此图标将打开一个模态窗口,您可以在其中编辑与“call_model”节点相关的所有字段的配置。在这里,您可以保存更改并将其应用于图。请注意,这些值反映了当前活动的助手,并且保存后会更新助手的新值。

配置模态窗口

沙箱

LangGraph Studio还通过与LangSmith沙箱集成来支持提示工程。为此:

  1. 打开现有线程或创建新线程。
  2. 在线程日志中,任何已调用LLM的节点都将有一个“查看LLM运行”的按钮。点击此按钮将弹出包含该节点LLM运行的窗口。
  3. 选择要编辑的LLM运行。这将打开带有选定LLM运行的LangSmith沙箱。

Studio中的沙箱

从这里,您可以编辑提示,测试不同的模型配置,并重新运行仅此LLM调用而无需重新运行整个图。当您对更改满意时,可以将更新后的提示复制回您的图中。

有关如何使用LangSmith沙箱的更多信息,请参阅LangSmith沙箱文档

Comments