iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0

本偏要來介紹這系列文的一大核心,就是LangChain!

LangChain

langchain是一個為了大語言模型(LLM)應用的框架,能簡化我們在開發時與語言模型的交互、讓我們做出各種運用,他集成了許多工具、套件等等,使我們的開發更加方便,像是後面要帶大家做的許多應用也是要用這個框架來實現。
這邊就舉幾個langchain的應用例子,像是多種語言模型交互的支援、讓模型有上下文對話的記憶功能,將複雜的任務流程串接,或是現在正熱門的檢索增強生成(RAG)等等,我們都可以在這個框架上去實現,以上舉的例子在後續篇幅也會一一來介紹實現!


本篇就先來簡單嘗試一下用Langchain和模型交互吧!

首先必須先在環境下載LangChain,一樣用pip或conda都可以,

pip install langchain
conda install -c conda-forge langchain

接著這邊使用前面玩過的Ollama來運行本地模型,並且在用langchain內提供的一個class,叫做ChatOllama。
首先要去cmd輸入ollama serve,將ollama打開,這邊就是用ollama提供的api去和模型交互

from langchain_community.chat_models.ollama import ChatOllama

//將模型初始化出來
llm = ChatOllama(model="llama3")

prompt = "I am Malenia, blade of Miqulle."

response = llm.invoke(prompt);
print(response)

這樣就成功和模型交互並得到回應了,是不是很簡單啊!
當然這只是其中一種方法,在langchain中還有非常非常多種class、function能和llm去交互,接下來我們就試試看ChatOllama其他種方法,astream

import asyncio
from langchain_community.chat_models.ollama import ChatOllama

llm = ChatOllama(model="llama3")

prompt = "I am Malenia, blade od Miqulle."

async def main():
    async for response in llm.astream(prompt):
        print(response)

asyncio.run(main())

用astrem則是能將模型的回應一段一段接收並print出來,適合用在需要及時反饋的時候,像是聊天機器人就很適合使用! 不過這種方法是異步的,所以需要異步函數來寫,在執行。

我們這樣就完成基礎的模型交互了!
當然其實在Langchain框架中用Ollama去運行模型其實也不是只有ChatOllama這個Class可以使用,在LangChain中有非常多Class、方法等等,大家有興趣可以在去LangChain官網或是Github查查!


LangChain Docs
LangChain Github


上一篇
<玩轉大語言模型> LLM模型部屬: HuggingFace & Transformer (下)
下一篇
<玩轉大語言模型> LangChain: PromptTemplate
系列文
LangChain、RAG、HuggingFace: 玩轉大語言模型15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言