見出し画像

langchainをollamaで使う (ローカルLLM(chat))

from langchain_community.llms import Ollama
from langchain.prompts import (
    ChatPromptTemplate,
    MessagesPlaceholder
)

llm = Ollama(model="llama3")

sys_prompt = """あなたは優秀なAIアシスタントです。質問に日本語で答えてください。
"""
prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            sys_prompt,
        ),
        MessagesPlaceholder(variable_name="chat_history"),
        ("human", "{input}"),
    ]
)

chain = prompt | llm
chat_history = []

while True:
    u = input("You: ")
    if not u:
        break
    chat_history.append(u)
    chunks = chain.stream({"input": u, "chat_history": chat_history})
    for chunk in chunks:
        print(chunk, end="")
    print("")
    chat_history.append(str(chunks))

ローカルLLMをlangchainに繋ぎます。短期記憶を実装するためにchat prompt templateを使います。チャットの最低限のスクリプトです。
このコードとは別にollamaをインストールしてください。gpuがある方は設定しないでも認識してくれます。

この記事が気に入ったらサポートをしてみませんか?