成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

LangChain轉換鏈:讓數據處理更精準

人工智能 開發
本文主要介紹了LangChain中的轉換鏈(TransformChain)的概念,它主要用在需要對輸入的內容進行轉換的場景下。

上篇文章《5分鐘了解LangChain的路由鏈》里主要介紹了路由鏈,核心類是LLMRouterChain和MultiPromptChain。本文介紹LangChain里的另外1個重要的鏈:轉換鏈。

轉換鏈的概念

在開發AI Agent(智能體)時,我們經常需要對輸入數據進行預處理,這樣可以更好地利用LLM。LangChain提供了一個強大的工具——轉換鏈(TransformChain),它可以幫我們輕松實現這一任務。

轉換鏈(TransformChain)主要是將 給定的數據 按照某個函數進行轉換,再將 轉換后的結果 輸出給LLM。 所以轉換鏈的核心是:根據業務邏輯編寫合適的轉換函數。

其實,轉換鏈的設計也很精妙,從源碼可以看出,它只是做了一條鏈,然后具體的任務完全丟給了外部的函數來實現。在LangChain里只要是鏈,就可以隨處鏈接。

轉換鏈的使用場景

轉換鏈只有1個核心類,TransformChain。

有時,我們在將數據發送給LLM之前,希望對其做一些操作時(比如替換一些字符串、截取部分文本等等),就會用到轉換鏈。TransformChain 在 NLP 中很重要,有些場景還很實用。

一般使用轉換鏈有幾個固定步驟:

  • 根據需求定義轉換函數transform_func,入參和出參都是字典。
  • 實例化轉換鏈TransformChain。
  • 因為轉換鏈只能做內容轉換的事情,后續的操作還需要LLM介入,所以需要實例化LLMChain。
  • 最終通過順序連SimpleSequentialChain將TransformChain和LLMChain串起來完成任務。

使用轉換鏈的案例

比如,給定LLM一篇很長的文章,但是我只想讓LLM幫我總結文章前3自然段的內容,同時,總結之前,我還需要將自然段里的 部分字段 替換成 給定字段。

具體代碼如下:

from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain, TransformChain, SimpleSequentialChain
from langchain_openai import OpenAI, ChatOpenAI

file_content = ""
with open("./file_data.txt", "r") as file:
    file_content = file.read()


# 定義轉換函數,截取文章前8段,再替換部分字符串
def transform_func(data):
    text = data["input_text"]
    shortened_text = "\n".join(text.split("\n")[:7])
    transform_shortened_text: str = shortened_text.replace(
        "PVC", "PersistentVolumeClaim"
    ).replace("PV", "PersistentVolume")
    return {"output_text": transform_shortened_text}


# 定義轉換鏈
transform_chain = TransformChain(
    input_variables=["input_text"],
    output_variables=["output_text"],
    transform=transform_func,
)

# 定義LLM
model = ChatOpenAI(
    model_name="gpt-3.5-turbo",
    openai_api_key="sk-xxxxxx",
    openai_api_base="https://api.302.ai/v1",
)

# 定義提示詞模板 和 LLM鏈
prompt_template = """
請你對下面的文字進行總結:
{output_text}

總結:
"""

prompt = PromptTemplate(input_variables=["output_text"], template=prompt_template)
llm_chain = LLMChain(
    llm=model,
    prompt=prompt,
)


# 使用順序鏈連接起來
final_chain = SimpleSequentialChain(chains=[transform_chain, llm_chain])
res = final_chain.run(file_content)
print(res)

代碼執行結果符合預期。總結的結果很精通,同時也是按照給定的字符串返回的。

總結

這篇博客主要介紹了LangChain中的轉換鏈(TransformChain)的概念,它主要用在需要對輸入的內容進行轉換的場景下。希望對你有幫助!

責任編輯:趙寧寧 來源: 程序員半支煙
相關推薦

2018-05-07 14:52:27

區塊鏈扶貧

2025-03-20 10:43:21

2020-05-25 11:16:31

編制

2012-11-19 16:08:21

病毒攻擊AVAR

2016-10-19 13:18:28

數據驅動分析

2012-03-23 15:27:24

阿拉丁

2015-05-05 11:18:18

大數據Hadoop技術處理

2014-07-17 15:05:49

阿里云ODPS數據處理

2024-11-29 14:50:00

模型數據

2021-04-02 15:02:42

開源技術 工具

2016-12-27 15:01:08

人工智能機器識別

2017-05-16 09:00:46

2017-03-20 09:17:36

2024-07-12 14:07:04

2024-09-25 14:16:35

2024-06-24 00:05:00

Python代碼

2024-01-31 23:22:35

vaexPython

2024-10-24 17:03:19

AWK數據處理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人在线视频免费观看 | 一区二区三 | 精品九九 | www.夜夜骑 | 粉嫩国产精品一区二区在线观看 | 欧美一区二区三区四区在线 | 青青草一区二区三区 | 精品在线 | 男人天堂网av | 一区在线视频 | 国产免费又黄又爽又刺激蜜月al | 国内精品一区二区三区 | 国产精品一区二区三区免费观看 | 精品国产视频 | 亚洲欧美aⅴ | 国产特一级黄色片 | 久久久久国产精品一区二区 | 亚洲精品一区二区三区中文字幕 | www久久av | 日韩精品影院 | 九一精品| 日韩亚洲视频 | 国产午夜精品理论片a大结局 | 91精品国产综合久久久久久漫画 | 久久久精品在线 | 成人一区二区三区在线观看 | 中文字幕一区在线观看视频 | 午夜精品一区二区三区在线观看 | 久久亚洲欧美日韩精品专区 | 超碰av在线| 欧州一区二区三区 | 亚洲视频在线观看 | 亚洲综合国产 | 欧美成人aaa级毛片在线视频 | 自拍视频在线观看 | 人人干人人爽 | 久久综合久久自在自线精品自 | 欧美精品在线播放 | 亚洲精品一区二区三区四区高清 | 日本三级视频 | 精品国产不卡一区二区三区 |