AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

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

來源: 責編: 時間:2024-06-25 17:15:04 135觀看
導讀上篇文章《5分鐘了解LangChain的路由鏈》里主要介紹了路由鏈,核心類是LLMRouterChain和MultiPromptChain。本文介紹LangChain里的另外1個重要的鏈:轉換鏈。轉換鏈的概念在開發AI Agent(智能體)時,我們經常需要對輸入數據進

上篇文章《5分鐘了解LangChain的路由鏈》里主要介紹了路由鏈,核心類是LLMRouterChain和MultiPromptChain。本文介紹LangChain里的另外1個重要的鏈:轉換鏈。u5x28資訊網——每日最新資訊28at.com

u5x28資訊網——每日最新資訊28at.com

轉換鏈的概念

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

轉換鏈(TransformChain)主要是將 給定的數據 按照某個函數進行轉換,再將 轉換后的結果 輸出給LLM。 所以轉換鏈的核心是:根據業務邏輯編寫合適的轉換函數。u5x28資訊網——每日最新資訊28at.com

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

u5x28資訊網——每日最新資訊28at.com

轉換鏈的使用場景

轉換鏈只有1個核心類,TransformChain。u5x28資訊網——每日最新資訊28at.com

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

一般使用轉換鏈有幾個固定步驟:u5x28資訊網——每日最新資訊28at.com

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

使用轉換鏈的案例

比如,給定LLM一篇很長的文章,但是我只想讓LLM幫我總結文章前3自然段的內容,同時,總結之前,我還需要將自然段里的 部分字段 替換成 給定字段。u5x28資訊網——每日最新資訊28at.com

具體代碼如下:u5x28資訊網——每日最新資訊28at.com

from langchain.prompts import PromptTemplatefrom langchain.chains import LLMChain, TransformChain, SimpleSequentialChainfrom langchain_openai import OpenAI, ChatOpenAIfile_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,)# 定義LLMmodel = 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)

代碼執行結果符合預期。總結的結果很精通,同時也是按照給定的字符串返回的。u5x28資訊網——每日最新資訊28at.com

總結

這篇博客主要介紹了LangChain中的轉換鏈(TransformChain)的概念,它主要用在需要對輸入的內容進行轉換的場景下。希望對你有幫助!u5x28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-96420-0.htmlLangChain轉換鏈:讓數據處理更精準

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Java 流式編程的七個必學技巧

下一篇: 一鍵掌握:Python 函數聲明與調用的 20 個優秀實踐

標簽:
  • 熱門焦點
Top