AI Agent開發學習系列 - langchain之Chains的使用(5):Transformation

Transformation(轉換鏈)是 LangChain 中用于“自定義數據處理”的鏈式工具,允許你在鏈路中插入任意 Python 代碼,對輸入或中間結果進行靈活處理。常用于:

  • 對輸入/輸出做格式化、過濾、摘要、拆分等自定義操作
  • 作為 LLMChain 等鏈的前置或后置處理環節

典型用法舉例

假設你有一段長文本,想先用 Python 代碼提取前3段,再交給大模型總結:

from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
from langchain.chains import SimpleSequentialChain# 讀取待處理文本內容
with open("letter.txt", "r") as f:letters = f.read()from langchain.chains import (LLMChain,SimpleSequentialChain,TransformChain
)# 定義轉換函數:只取前三個段落
def transform_func(inputs:dict) -> dict:text = inputs["content"]trans_text = "\n\n".join(text.split("\n\n")[:3])return {"summary": trans_text}# 構建文檔轉換鏈,將原始內容轉換為摘要內容
transform_chain = TransformChain(input_variables=["content"],output_variables=["summary"],transform=transform_func
)# 總結用的prompt模板
template = """總結下面的內容:
{summary}
總結:"""prompt = PromptTemplate(input_variables=["summary"],template=template
)print(prompt)  # 打印prompt模板# 使用騰訊混元大模型作為LLM
llm = ChatOpenAI(api_key=SecretStr(os.environ.get("HUNYUAN_API_KEY", "")),base_url="https://api.hunyuan.cloud.tencent.com/v1",model="hunyuan-t1-latest",temperature=0,
)# 構建LLM鏈,輸入為summary,輸出為總結
llm_chain = LLMChain(llm=llm,prompt=prompt
)# 順序鏈:先transform,再總結
sequential_chain = SimpleSequentialChain(chains=[transform_chain, llm_chain],verbose=True
)# 執行順序鏈,輸出最終結果
print(sequential_chain.run(letters))

輸出:

input_variables=['summary'] template='總結下面的內容:\n{summary}\n總結:'> Entering new SimpleSequentialChain chain...
Dear Dr. Smith,I hope this letter finds you well. I am writing to express my sincere gratitude for your guidance and support throughout my recent research project on "Deep Learning-Based Image Recognition for Medical Diagnosis." Specifically, my research focused on applying convolutional neural networks (CNNs) to the automatic detection and classification of medical images, such as identifying pathological features in X-rays and MRI scans. I explored methods to improve model accuracy and robustness, including data augmentation, transfer learning, and the integration of attention mechanisms to enhance feature extraction. Your expertise and encouragement have been invaluable to my academic growth, and I truly appreciate the time and effort you have dedicated to mentoring me.The insights you provided, especially regarding the optimization of convolutional neural network architectures and the interpretation of experimental results, not only helped me overcome several challenges but also inspired me to explore new directions in my work. I am especially grateful for your constructive feedback during our discussions, which greatly improved the quality of my research.
這是一封致Dr. Smith的感謝信,作者主要表達對其在“基于深度學習的醫學診斷圖像識別”研究項目中的指導與支持的誠摯謝意。研究聚焦于應用卷積神經網絡(CNN)實現醫學影像(如X光、MRI)的自動檢測與分類,并探索了數據增強、遷移學習及注意力機制等方法以提升模型準確性與魯棒性。作者特別感謝Dr. Smith在優化CNN架構、解讀實驗結果等方面的專業建議,以及討論中提供的建設性反饋,這些幫助其克服挑戰并提升了研究質量,對其學術成長意義重大。> Finished chain.
這是一封致Dr. Smith的感謝信,作者主要表達對其在“基于深度學習的醫學診斷圖像識別”研究項目中的指導與支持的誠摯謝意。研究聚焦于應用卷積神經網絡(CNN)實現醫學影像(如X光、MRI)的自動檢測與分類,并探索了數據增強、遷移學習及注意力機制等方法以提升模型準確性與魯棒性。作者特別感謝Dr. Smith在優化CNN架構、解讀實驗結果等方面的專業建議,以及討論中提供的建設性反饋,這些幫助其克服挑戰并提升了研究質量,對其學術成長意義重大。

關鍵點說明

  • TransformChain 允許插入任意 Python 邏輯,極大增強鏈式流程的靈活性。
  • 可與 LLMChain、SimpleSequentialChain 等組合,實現“預處理-大模型-后處理”流水線。
  • 適合數據清洗、格式轉換、摘要、實體提取等場景。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/88614.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/88614.shtml
英文地址,請注明出處:http://en.pswp.cn/web/88614.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Druid 連接池使用詳解

Druid 連接池使用詳解 一、Druid 核心優勢與架構 1. Druid 核心特性 特性說明價值監控統計內置 SQL 監控/防火墻實時查看 SQL 執行情況防 SQL 注入WallFilter 防御機制提升系統安全性加密支持數據庫密碼加密存儲符合安全審計要求擴展性強Filter 鏈式架構自定義功能擴展高性能…

9.2 埃爾米特矩陣和酉矩陣

一、復向量的長度 本節的主要內容可概括為:當對一個復向量 z\pmb zz 或復矩陣 A\pmb AA 轉置后,還要取復共軛。 不能在 zTz^TzT 或 ATA^TAT 時就停下來,還要對所有的虛部取相反的符號。對于一個分量為 zjajibjz_ja_jib_jzj?aj?ibj? 的列向…

AI驅動的低代碼革命:解構與重塑開發范式

引言:低代碼平臺的范式轉移 當AI技術與低代碼平臺深度融合,軟件開發正經歷從"可視化編程"到"意圖驅動開發"的根本性轉變。這種變革不僅提升了開發效率,更重新定義了人與系統的交互方式。本文將從AI介入的解構層次、交互范…

zookeeper etcd區別

ZooKeeper與etcd的核心區別體現在設計理念、數據模型、一致性協議及適用場景等方面。?ZooKeeper基于ZAB協議實現分布式協調,采用樹形數據結構和臨時節點特性,適合傳統分布式系統;而etcd基于Raft協議,以高性能鍵值對存儲為核心&am…

模擬注意力:少量參數放大 Attention 表征能力

論文標題 SAS: Simulated Attention Score 論文地址 https://arxiv.org/pdf/2507.07694 代碼 見論文附錄 作者背景 摩根士丹利,斯坦福大學,微軟研究院,新加坡國立大學,得克薩斯大學奧斯汀分校,香港大學 動機 …

零基礎|寶塔面板|frp內網穿透|esp32cam遠程訪問|微信小程序

1.準備好阿里云服務器和寶塔面板2.安裝frp服務端3.測試(密碼賬號在詳情里面)4.配置客戶端#一、沒有域名情況下 [common] server_addr #公網ip地址,vps server_port 7000 服務的bind_port token 12121212 [httpname] type tcp # 沒有域名情況下使用 tcp local_i…

Spring Boot整合MyBatis+MySQL+Redis單表CRUD教程

Spring Boot整合MyBatisMySQLRedis單表CRUD教程 環境準備 1. Redis安裝(Windows) # 下載Redis for Windows # 訪問: https://github.com/tporadowski/redis/releases # 下載Redis-x64-5.0.14.1.msi并安裝# 啟動Redis服務 redis-server# 測試連接 redis-c…

linux學習第30天(線程同步和鎖)

線程同步協同步調,對公共區域數據按序訪問。防止數據混亂,產生與時間有關的錯誤。數據混亂的原因資源共享(獨享資源則不會)調度隨機(意味著數據訪問會出現競爭)線程間缺乏必要同步機制鎖的使用建議鎖!對公共數據進行保護。所有線程【應該】在…

JavaScript中的系統對話框:alert、confirm、prompt

JavaScript中的系統對話框:alert、confirm、prompt 在Web開發的世界里,JavaScript始終扮演著“橋梁”的角色——它連接用戶與網頁,讓靜態的頁面煥發活力。而在這座橋梁上,系統對話框(System Dialogs)是最基…

圓冪定理深度探究——奧數專題講義

圓冪定理深度探究——奧數專題講義 開篇語:幾何中的"隱藏等式" 在平面幾何的星空中,圓與直線的交點仿佛散落的珍珠,而連接這些珍珠的線段之間,藏著一組令人驚嘆的等量關系。當我們用直尺測量、用邏輯推導時,…

一文看懂顯示接口:HDMI / DP / VGA / USB-C 有什么區別?怎么選?

剛買的新顯示器,插上線卻發現畫面糊成馬賽克?游戲打到關鍵時刻突然黑屏?4K電影看著看著就卡頓?別急!這些問題很可能都是"接口沒選對"惹的禍!今天我們就來徹底搞懂HDMI、DP、VGA、USB-C這些常見的…

【ARM嵌入式匯編基礎】- 操作系統基礎(二)

操作系統基礎(二) 文章目錄 操作系統基礎(二)6、線程7、進程內存管理8、內存頁9、內存保護10、匿名內存和內存映射內存11、內存映射文件和模塊6、線程 程序首次啟動時,會創建一個新進程,并為該程序分配一個線程。該初始線程負責初始化進程并最終調用程序中的主函數。多線…

C#調用Matlab生成的DLL

C#調用Matlab生成的DLL 1.Matlab生成DLL文件1.1準備腳本文件1.2.輸出DLL文件2.Winform項目中調用DLL2.1.創建Winform項目2.2.添加引用2.3.調用DLL2.3.1. 方法12.3.2. 方法22.4.配置CPU3.運行測試4.缺點1.Matlab生成DLL文件 1.1準備腳本文件 在Matlab環境下創建腳本文件calcul…

Julia爬取數據能力及應用場景

Julia 是一種高性能編程語言,特別適合數值計算和數據分析。然而,關于數據爬取(即網絡爬蟲)方面,我們需要明確以下幾點:雖然它是一門通用編程語言,但它的強項不在于網絡爬取(Web Scra…

Java03 二維數組|方法

一、聲明數組和初始化(掌握)數據類型[] 數組名 ; 數據類型 數組名[] ;靜態初始化數據類型[] 數組名 {元素1,元素2,元素3};動態初始化數據類型[] 數組名 new 數據類型[5]; 數組名[0] 元素1;二、數組的內存結構(掌握)package…

1. JVM介紹和運行流程

1. jvm是什么JVM(Java Virtual Machine)是 Java 程序的運行環境,它是 Java 技術的核心組成部分,負責執行編譯后的 Java 字節碼(.class文件)。jvm 說白了就是虛擬機,一個專門運行java字節碼文件的…

Spring Cloud Gateway 的路由和斷言是什么關系?

1. 基本概念 路由是 Spring Cloud Gateway 的基本組成單元。它定義了從客戶端接收到的請求應該被轉發到哪個目標服務。一個完整的路由通常包含以下幾個要素: ID (id):路由的唯一標識符。目標 URI (uri):請求最終要被轉發到的后端服務地址。斷…

線程屬性設置全攻略

目錄 一、線程屬性的概念 二、線程屬性的核心函數 1. 初始化與銷毀線程屬性對象 2. 常用屬性設置函數 三、線程屬性的設置示例 1. 設置線程為分離狀態 2. 設置線程棧大小 3. 設置線程調度策略和優先級 四、線程屬性的關鍵注意事項 1. 分離狀態(Detached S…

蒼穹外賣-day06

蒼穹外賣-day06 課程內容 HttpClient微信小程序開發微信登錄導入商品瀏覽功能代碼 學習目標 能夠使用HttpClient發送HTTP請求并解析響應結果 了解微信小程序開發過程 掌握微信登錄的流程并實現功能代碼 了解商品瀏覽功能需求 功能實現:微信登錄、商品瀏覽 1. H…

安卓定制功能

未解決的定制功能 1.創建自定義分區 2.通過服務啟動應用進程 3.應用白名單 4.網絡白名單 5.應用鎖 6.默認launcher 7.多主頁動態切換 8.禁止狀態欄下拉/鎖屏頁面禁止下拉狀態欄(兩種一起) 9.導航欄動態打開關閉 10.固件默認是手勢還是導航欄 11.狀態欄動…