跳到主要内容
GitHub:nomic-ai/gpt4all 是一个开源聊天机器人生态系统,通过海量干净的助手数据(包括代码、故事和对话)进行训练。 此示例介绍了如何使用 LangChain 与 GPT4All 模型进行交互。
pip install -qU langchain-community gpt4all

导入 GPT4All

from langchain_community.llms import GPT4All
from langchain_core.prompts import PromptTemplate

设置要传递给 LLM 的问题

template = """Question: {question}

Answer: Let's think step by step."""

prompt = PromptTemplate.from_template(template)

指定模型

要在本地运行,请下载兼容的 ggml 格式模型。 gpt4all 页面有一个有用的 Model Explorer 部分:
  • 选择感兴趣的模型
  • 使用 UI 下载并将 .bin 文件移动到 local_path(如下所示)
欲了解更多信息,请访问 github.com/nomic-ai/gpt4all
此集成尚不支持通过 .stream() 方法分块流式传输。下面的示例使用带有 streaming=True 的回调处理程序。
local_path = (
    "./models/Meta-Llama-3-8B-Instruct.Q4_0.gguf"  # replace with your local file path
)
from langchain_core.callbacks import BaseCallbackHandler

count = 0


class MyCustomHandler(BaseCallbackHandler):
    def on_llm_new_token(self, token: str, **kwargs) -> None:
        global count
        if count < 10:
            print(f"Token: {token}")
            count += 1


# Verbose is required to pass to the callback manager
llm = GPT4All(model=local_path, callbacks=[MyCustomHandler()], streaming=True)

# If you want to use a custom model add the backend parameter
# Check https://docs.gpt4all.cn/gpt4all_python.html for supported backends
# llm = GPT4All(model=local_path, backend="gptj", callbacks=callbacks, streaming=True)

chain = prompt | llm

question = "What NFL team won the Super Bowl in the year Justin Bieber was born?"

# Streamed tokens will be logged/aggregated via the passed callback
res = chain.invoke({"question": question})
Token:  Justin
Token:  Bieber
Token:  was
Token:  born
Token:  on
Token:  March
Token:
Token: 1
Token: ,
Token:

以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.