国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【LangChain】P1 LangChain 應用程序的核心構建模塊 LLMChain 以及其三大部分

這篇具有很好參考價值的文章主要介紹了【LangChain】P1 LangChain 應用程序的核心構建模塊 LLMChain 以及其三大部分。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【LangChain】P1 LangChain 應用程序的核心構建模塊 LLMChain 以及其三大部分,langchain,搜索引擎

LangChain 應用程序的核心構建模塊

LangChain 應用程序的核心構建模塊 LLMChain 由三部分組成:

  • 語言模型 - LLMs: 語言模型是這里的核心推理引擎。為了使用 LangChain,您需要了解不同類型的語言模型以及如何使用它們。
  • 提示模板 - Prompt templates: 它為語言模型提供指令。它控制著語言模型的輸出,因此了解如何構建提示和不同的提示策略至關重要。
  • 輸出解析器 - Output Parsers: 它們將 LLM 的原始響應翻譯成更易于使用的格式,從而方便下游使用輸出。

本部分我將單獨介紹這三個組件,然后介紹將所有組件結合在一起的 LLMChain:


語言模型 - LLMs

在 LangChain 中,存在兩種語言模型:

  • LLMs: 將字符串作為輸入并返回字符串的語言模型;
    LLMs 的輸入/輸出是簡單易懂的字符串。
  • ChatModels: 聊天模型,將信息列表作為輸入并返回信息的語言模型;
    ChatModels 的輸入是一個 ChatMessage 列表,輸出是一個 ChatMessage。ChatMessage 有兩個必備組件:
    • content(內容): 這是信息的內容。
    • role(角色): 這是來自該 ChatMessage 的實體的角色。

LangChain 為這兩種語言模型提供了一個標準接口,該標準接口有兩個方法:

  • predict: 接收一個字符串,返回一個字符串;明顯是 LLMs 的方法。
  • predict_messages: 接收信息列表,返回信息;明顯是 ChatModels 的方法。

LangChain 提供了多個對象,可以輕松區(qū)分不同的角色:

  • HumanMessage(人類信息): 來自人類/用戶的 ChatMessage。
  • AIMessage(人工智能助手信息): 來自人工智能/助手的聊天信息。
  • SystemMessage(系統(tǒng)信息): 系統(tǒng)消息來自系統(tǒng)的聊天信息。
  • FunctionMessage(功能消息): 來自函數(shù)調用的聊天信息。

初始化 llm 與 chat_model

from langchain.llms import OpenAI
from langchain.chat_models import ChatOpenAI

llm = OpenAI(openai_api_key="xxx")
chat_model = ChatOpenAI(openai_api_key="xxx")
# 如果需要 API Key 可在博文下方留言

使用 predict 方法運行字符串輸入:

text = "What would be a good company name for a company that makes colorful socks?"

print(llm.predict(text))
print(chat_model.predict(text))

使用 predict_message 方法運行信息列表輸入:

from langchain.schema import HumanMessage

text = "What would be a good company name for a company that makes colorful socks?"
messages = [HumanMessage(content=text)]

print(llm.predict_messages(messages))
print(chat_model.predict_messages(messages))

提示模板 - Prompt templates

  • 提示模板是什么?

    在大語言模型中,開發(fā)人員通常不會直接將用戶輸入傳遞給語言模型,而是將用戶輸入添加到一個較大的文本段中,該文本段稱為 “提示模板”(Prompt Template)。

  • 提示模板的目的?

    這樣做的目的是為了為特定任務提供更多的上下文和指導,從而引導語言模型生成更有針對性的輸出。

    這種方法有助于引導語言模型的生成,使其更加專注于特定任務,同時也可以控制生成的文本的風格和內容。通過提供上下文信息,提示模板可以在不同應用場景中引導語言模型的生成,以適應不同的用戶需求。

  • 字符串提示模板案例:

    from langchain.prompts import PromptTemplate
    
    prompt = PromptTemplate.from_template("What is a good name for a company that makes {product}?")
    prompt.format(product="colorful socks")
    
  • 信息列表提示模板案例:

    from langchain.prompts.chat import (
        ChatPromptTemplate,
        SystemMessagePromptTemplate,
        HumanMessagePromptTemplate,
    )
    
    template = "You are a helpful assistant that translates {input_language} to {output_language}."
    system_message_prompt = SystemMessagePromptTemplate.from_template(template)
    human_template = "{text}"
    human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)
    
    chat_prompt = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])
    
    chat_prompt.format_messages(input_language="English", output_language="French", text="I love programming.")
    

輸出解析器 - Output Parsers

  • 輸出解析器的作用?

    輸出解析器可將 LLM 的原始輸出轉換成下游可使用的格式。

  • 輸出解析器的類型?

    • 將 LLM 中的文本轉換為結構化信息(如 JSON);
    • 將聊天信息轉換為字符串;
    • 將調用返回的除信息外的額外信息(如 OpenAI 函數(shù)調用)轉換為字符串。
    • 等;
  • 案例:

    下案例為編寫自己的輸出解析器 – 將逗號分隔的列表轉換為列表:

    from langchain.schema import BaseOutputParser
    
    class CommaSeparatedListOutputParser(BaseOutputParser):
        """Parse the output of an LLM call to a comma-separated list."""
        
        def parse(self, text: str):
            """Parse the output of an LLM call."""
            return text.strip().split(", ")
    
    CommaSeparatedListOutputParser().parse("hi, bye")
    # >> ['hi', 'bye']
    

LLMChain 組合

現(xiàn)在,我們將所有這些組合成一個鏈。
該鏈將接收輸入變量,將其傳遞給提示模板以創(chuàng)建提示,將提示傳遞給 LLM,然后將輸出傳遞給輸出解析器。
這是一種捆綁模塊化邏輯的便捷方法。請看測試案例:

from langchain.chat_models import ChatOpenAI
from langchain.prompts.chat import (
    ChatPromptTemplate,
    SystemMessagePromptTemplate,
    HumanMessagePromptTemplate,
)
from langchain.chains import LLMChain
from langchain.schema import BaseOutputParser

# 輸出解析器部分
class CommaSeparatedListOutputParser(BaseOutputParser):
    """Parse the output of an LLM call to a comma-separated list."""

    def parse(self, text: str):
        """Parse the output of an LLM call."""
        return text.strip().split(", ")

# 信息列表提示模板案例
template = """You are a helpful assistant who generates comma separated lists.
A user will pass in a category, and you should generate 5 objects in that category in a comma separated list.
ONLY return a comma separated list, and nothing more."""
system_message_prompt = SystemMessagePromptTemplate.from_template(template)
human_template = "{text}"
human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)

chat_prompt = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])
chain = LLMChain(
    llm=ChatOpenAI(),
    prompt=chat_prompt,
    output_parser=CommaSeparatedListOutputParser()
)
chain.run("colors")
# >> ['red', 'blue', 'green', 'yellow', 'orange']

上一篇博文:【LangChain】P0 LangChain 是什么與準備工作
下一篇博文:文章來源地址http://www.zghlxwxcb.cn/news/detail-652689.html

到了這里,關于【LangChain】P1 LangChain 應用程序的核心構建模塊 LLMChain 以及其三大部分的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Java-langchain:在Java環(huán)境中構建強大的基于LLM的應用程序

    Java-langchain : 一個Java 8+的LangChain實現(xiàn)。在(企業(yè))Java環(huán)境中構建強大的基于LLM的應用程序。 這里持續(xù)連載詳細的Java入門的LLM學習課程。課程分四個部分: 面向開發(fā)者的提示工程 (promptdevelopment) 搭建基于 ChatGPT 的問答系統(tǒng) (chagptapi) 使用 LangChain 開發(fā)應用程序 (langchain) 使用 Lang

    2024年02月21日
    瀏覽(20)
  • Elasticsearch:使用在本地計算機上運行的 LLM 以及 Ollama 和 Langchain 構建 RAG 應用程序

    Elasticsearch:使用在本地計算機上運行的 LLM 以及 Ollama 和 Langchain 構建 RAG 應用程序

    無需 GPU 的隱私保護 LLM。在本博客中,我將演示使用不同的工具 Ollama 構建的 RAG 應用程序。 與本文相關的所有源代碼均已發(fā)布在 github上。 請克隆存儲庫以跟隨文章操作。我們可以通過如下的方式來克?。?Ollama 是一個輕量級且靈活的框架,專為在個人計算機上本地部署 LL

    2024年04月16日
    瀏覽(30)
  • 自學大語言模型的應用程序框架Langchain(初入門)

    自學大語言模型的應用程序框架Langchain(初入門)

    現(xiàn)階段chatGPT非常火熱。帶動了第三方開源庫:LangChain火熱。它是一個在大語言模型基礎上實現(xiàn)聯(lián)網(wǎng)搜索并給出回答、總結 PDF 文檔、基于某個 Youtube 視頻進行問答等等的功能的應用程序。 LangChain 是一個用于開發(fā)由語言模型驅動的應用程序的框架。 langchain的目標:最強大和差

    2024年02月07日
    瀏覽(25)
  • 【AI大模型應用開發(fā)】【LangChain系列】7. LangServe:輕松將你的LangChain程序部署成服務

    【AI大模型應用開發(fā)】【LangChain系列】7. LangServe:輕松將你的LangChain程序部署成服務

    大家好,我是【同學小張】。持續(xù)學習,持續(xù)干貨輸出,關注我,跟我一起學AI大模型技能。 LangServe 用于將 Chain 或者 Runnable 部署成一個 REST API 服務。 同時安裝langserve的服務端和客戶端。 只安裝客戶端 只安裝服務端 1.1 服務端代碼 從代碼來看創(chuàng)建LangServe的重點: (1)創(chuàng)建

    2024年03月28日
    瀏覽(29)
  • ChatGPT 使用 拓展資料:吳恩達大咖 基于LangChain的LLM應用程序開發(fā)-1

    ChatGPT 使用 拓展資料:吳恩達大咖 基于LangChain的LLM應用程序開發(fā)-1

    ChatGPT 使用 拓展資料:吳恩達大咖 基于LangChain的LLM應用程序開發(fā) 基于LangChain的LLM應用程序開發(fā) LangChain for LLM Application Development [https://www.deeplearning.ai/short-courses/langchain-for-llm-application-development/] LangChain for LLM Application Development https://www.deeplearning.ai/short-courses/langchain-for-llm-app

    2024年02月07日
    瀏覽(23)
  • Web 應用程序性能測試核心步驟

    Web 應用程序性能測試核心步驟

    ?通常大家做web 應用程序的時候會有哪些操作呢?今天就來看看常見的web 應用程序的常見操作。 1:識別測試環(huán)境。確定物理測試環(huán)境和生產(chǎn)環(huán)境,以及測試團隊可用的工具和資源。物理環(huán)境包括硬件、軟件和網(wǎng)絡配置。在一開始就對整個測試環(huán)境有一個徹底的理解,可以使

    2024年01月18日
    瀏覽(33)
  • Flutter中的Web應用程序開發(fā):構建現(xiàn)代Web應用程序

    作者:禪與計算機程序設計藝術 作為人工智能專家,程序員和軟件架構師,CTO,我今天將為大家分享有關 Flutter 中 Web 應用程序開發(fā)的見解。在這篇文章中,我們將深入探討 Flutter Web 應用程序的開發(fā)過程、技術原理以及最佳實踐。 引言 隨著移動設備的普及,Web 應用程序在全

    2024年02月12日
    瀏覽(33)
  • 【Serverless Web 應用程序】構建流程

    【Serverless Web 應用程序】構建流程

    【1】選擇構建 Serverless Web 應用程序,程序架構如下所示: 【2】開發(fā)流程 【2.1】靜態(tài) Web 托管與持續(xù)部署: 所有的靜態(tài)網(wǎng)頁內容(HTML、CSS、JavaScript、圖 像)和其他文件將由 AWS Amplify 控制臺管理。用戶將使用 AWS Amplify 控制 臺公開的公共網(wǎng)站 URL 訪問 Web。不需要額外運行

    2024年02月03日
    瀏覽(35)
  • 基于aws構建一個web應用程序

    基于aws構建一個web應用程序

    經(jīng)驗帖以及個人總結。 一. 在創(chuàng)建EC2主機前,可先行創(chuàng)建密匙以及安全組。 關于安全組: 1. 入站規(guī)則(別人訪問你做的一些限制) :開放ssh 端口。是為了可以進行l(wèi)inux相關的連接。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?開放http端口。

    2024年02月08日
    瀏覽(29)
  • 軟件即服務:如何構建 SaaS 應用程序

    軟件即服務 (SAAS) 是在線公司的理想商業(yè)模式。它有助于直接從服務器檢索數(shù)據(jù),無需用戶獲取其副本。 SaaS 開發(fā)公司為初創(chuàng)公司和小型供應商提供了發(fā)展企業(yè)的絕佳機會。通常,SaaS 解決方案的適應性很強。由于基于云的技術的簡單性,客戶被迫采用此服務。 根據(jù)業(yè)務增長

    2023年04月25日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包