LangChain中间件:Intermediate Steps(附:代码示例)

文 / @WordPress主题

Agent的执行流程是否可以更加透明和可控?LangChain提供的Intermediate Steps正是为此而设计。它允许我们在执行前后注入自定义代码,实现预处理和后处理。

本文将详细介绍Intermediate Steps的设计思想、接口特征、常见用法及代码示例。您将学习到如何利用这个中间件实现日志记录、验证、过滤等功能。我们也会探讨不同的应用场景,比如监控、审查等。

Intermediate Steps为LangChain的执行流程提供了开放的扩展点。让我们共同来发掘这一新的能力,打造更安全可控的AI应用程序。在负责任地使用LLM的道路上,LangChain正在为我们铺平又一条便捷之路。

Intermediate Steps介绍

Intermediate Steps是LangChain中的一个功能,它允许在执行Agent的过程中注入额外的处理步骤。其主要作用和特点包括:

  1. 在Agent执行前后注入代码逻辑,实现预处理和后处理。
  2. 支持修改执行的输入或输出,添加自定义的控制逻辑。
  3. 可以进行logging、验证、过滤不合规内容等额外操作。
  4. 允许执行一些副作用,如记录指标、访问外部服务等。
  5. 提供了init/preprocess/postprocess三个插入点。
  6. init和postprocess适合无副作用的状态初始化和清理。
  7. preprocess可以修改输入,postprocess可以修改输出。
  8. 可以由开发者灵活定制,满足不同的需求。
  9. 使Agent的执行更透明,便于监控和控制。

通过Intermediate Steps的插入,我们可以更精细地控制Agent的执行过程,实现一些定制化的功能需求,为LangChain的使用提供了更大的灵活性。

Intermediate Steps代码示例

Intermediate Steps在Python和Node.js中的使用示例代码:

Python:

python

Copy code

from langchain.callbacks import CallbackHandler

def preprocess(input):
print(f"Preprocessing {input}")
return input

def postprocess(output):
print(f"Postprocessing {output}")
return output

callbacks = CallbackHandler()
callbacks.add_preprocess_callback(preprocess)
callbacks.add_postprocess_callback(postprocess)

agent = MyAgent()
agent.set_callbacks(callbacks)

response = agent.run("Hello world!")

Node.js:

js

Copy code

const { CallbackHandler } = require('langchain');

function preprocess(input) {
console.log(`Preprocessing ${input}`);
return input;
}

function postprocess(output) {
console.log(`Postprocessing ${output}`);
return output;
}

const callbacks = new CallbackHandler();
callbacks.addPreprocessCallback(preprocess);
callbacks.addPostprocessCallback(postprocess);

const agent = new MyAgent();
agent.setCallbacks(callbacks);

const response = await agent.run("Hello world!");

主要流程是:

  1. 定义预处理和后处理函数
  2. 创建CallbackHandler注册回调函数
  3. 为Agent设置CallbackHandler
  4. Agent执行时会触发注册的回调

这样我们就可以自定义注入逻辑,控制执行流程,实现一些自定义的功能。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。