构建LangChain应用程序的示例代码:61、如何使用 LangChain 和 LangSmith 优化链

本示例介绍如何使用 LangChain 和 LangSmith 优化链。

设置

我们将为 LangSmith 设置环境变量,并加载相关数据

import os

os.environ["LANGCHAIN_PROJECT"] = "movie-qa"
# 设置 LANGCHAIN_PROJECT 环境变量为 "movie-qa"
import pandas as pd
# 导入 pandas 库
df = pd.read_csv("data/imdb_top_1000.csv")
# 从 CSV 文件中读取 IMDB 前 1000 部电影的数据
df["Released_Year"] = df["Released_Year"].astype(int, errors="ignore")
# 将 "Released_Year" 列转换为整数类型,忽略错误

创建初始检索链

我们将使用自查询检索器

from langchain.schema import Document
from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings()
# 导入必要的库并创建 OpenAIEmbeddings 对象
records = df.to_dict("records")
documents = [Document(page_content=d["Overview"], metadata=d) for d in records]
# 将数据框转换为字典列表,并创建 Document 对象列表
vectorstore = Chroma.from_documents(documents, embeddings)
# 使用文档和嵌入创建 Chroma 向量存储
from langchain.chains.query_constructor.base import AttributeInfo
from langchain.retrievers.self_query.base import SelfQueryRetriever
from langchain_openai import ChatOpenAI

metadata_field_info = [
    AttributeInfo(
        name="Released_Year",
        description="The year the movie was released",
        type="int",
    ),
    AttributeInfo(
        name="Series_Title",
        description="The title of the movie",
        type="str",
    )
### Langchain Langsmith 的区别与关系 #### 定义与功能 Langchain 是一种用于构建大型语言模型 (LLM) 驱动应用程序的框架,它提供了丰富的工具集来处理数据流、对话管理以及与其他服务集成的功能[^1]。通过 Langchain,开发者可以更轻松地创建复杂的自然语言处理应用。 相比之下,Langsmith 则是一个专注于简化 LLM 应用程序开发流程的服务平台[^2]。它可以看作是对 Langchain 工具的一种补充支持系统,主要提供监控、调试优化等功能。具体来说,Langsmith 提供了对模型性能分析的能力,帮助识别潜在问题并改进整体用户体验。 两者之间的联系在于它们共同服务于同一个目标群体——那些希望利用先进的人工智能技术快速搭建高效解决方案的企业个人开发者们;然而,在实际应用场景中扮演着不同角色:一个是作为核心开发框架存在(即 Langchain),另一个则是辅助性的服务平台(也就是 Langsmith)[^3]。 #### 技术特性对比 从技术角度来看: - **模块化设计**: Langchain 强调其高度灵活可定制化的架构特点,允许用户根据项目需求自由组合各种组件如提示模板引擎(Prompt Templates), 文档加载器(Document Loaders) 等等[^4]. 这种灵活性使得即使面对复杂业务逻辑也能够游刃有余地实现预期效果. - **易用性考量**: 而对于初学者或者只需要简单部署预训练模型的人来说, 使用 Langsmith 可能会更加直观便捷一些因为它降低了进入门槛并通过图形界面等方式让用户无需深入了解底层细节就能完成大部分基础操作.[^5] 此外值得注意的是尽管二者都可以单独发挥作用但在某些情况下结合起来使用往往可以获得更好的结果因为这样不仅可以享受前者带来的强大功能还能借助后者所提供的额外支持进一步提升工作效率减少维护成本. ```python from langchain.prompts import PromptTemplate from langchain.llms import OpenAI llm = OpenAI() template = "{question}" prompt_template = PromptTemplate(input_variables=["question"], template=template) response = llm(prompt_template.format(question="What is the capital of France?")) print(response) ``` 上面这段简单的 Python 示例展示了如何使用 Langchain 来生成基于特定输入的问题答案。而如果我们将此过程迁移到 Langsmith 上,则可能不需要编写任何代码即可达到相似目的,只需按照指引配置好相应参数就行[^6]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hugo_Hoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值