> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# 3种本地运行Llama 3.2的方法
- URL: https://www.hubwiz.com/blog/3-ways-to-run-llama-3-2-locally/
- Published: 2024-10-28T07:22:43.000Z
- Updated: 2024-10-28T10:20:37.000Z
- Description: 本文将探索三种不同的本地与 LLama 3.2 交互的方法。
- Author: admin
- Tags: LLM, OLLAMA, LANGCHAIN, LLAMA, #Import 2026-10-14 14:41

大型语言模型 (LLM) 彻底改变了 AI 领域，小型模型也正在兴起。因此，即使在较旧的 PC 和智能手机上也有可能运行高级 LLM。为了给出一个起点，我们将探索三种不同的本地与 LLama 3.2 交互的方法。

在深入研究之前，请确保你已经：

- 安装并运行Ollama
- 已拉取LLama 3.2 模型（在终端中使用 `ollama pull llama3.2`）

现在，让我们探索这三种方法！

## 方法1：使用Ollama Python包

Ollama Python 包提供了一种在 Python 脚本或 Jupyter 笔记本中与 LLama 3.2 交互的直接方法。

```
import ollama

response = ollama.chat(
    model="llama3.2",
    messages=[
        {
            "role": "user",
            "content": "Tell me an interesting fact about elephants",
        },
    ],
)
print(response["message"]["content"])
```

此方法非常适合简单的同步交互。但是，如果你想流式传输响应，该怎么办？Ollama 的 `AsyncClient` 可以满足你的需求：

```
import asyncio
from ollama import AsyncClient

async def chat():
    message = {
        "role": "user",
        "content": "Tell me an interesting fact about elephants"
    }
    async for part in await AsyncClient().chat(
        model="llama3.2", messages=[message], stream=True
    ):
        print(part["message"]["content"], end="", flush=True)

# Run the async function
asyncio.run(chat())
```

## 方法 2：使用 Ollama API

对于那些喜欢直接使用 API 或希望将 LLama 3.2 集成到非 Python 应用程序中的人，Ollama 提供了一个简单的 HTTP API。

```
curl http://localhost:11434/api/chat -d '{
    "model": "llama3.2",
    "messages": [
        {
            "role": "user",
            "content": "What are God Particles?"
        }
    ],
    "stream": false
}'
```

此方法可让你灵活地使用任何可以发出 HTTP 请求的语言或工具与 LLama 3.2 进行交互。

## 方法 3：使用 Langchain 开发高级应用

对于更复杂的应用程序，尤其是涉及文档分析和检索的应用程序，Langchain 可与 Ollama 和 LLama 3.2 无缝集成。

以下代码片段演示了如何加载文档、创建嵌入和执行相似性搜索：

```
from langchain_community.document_loaders import DirectoryLoader, UnstructuredWordDocumentLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_community.embeddings import OllamaEmbeddings
from langchain_community.llms import Ollama
from langchain_community.vectorstores import Chroma

# Load documents
loader = DirectoryLoader('/path/to/documents', glob="**/*.docx", loader_cls=UnstructuredWordDocumentLoader)
documents = loader.load()

# Split documents into chunks
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=0)
splits = text_splitter.split_documents(documents)

# Create embeddings and vector store
embeddings = OllamaEmbeddings(model="nomic-embed-text")
vectorstore = Chroma.from_documents(documents=splits, embedding=embeddings)

# Initialize LLama 3.2
llm = Ollama(model="llama3.2", base_url="http://localhost:11434")

# Perform a similarity search and generate a response
query = "What was the main accomplishment of Thomas Jefferson?"
similar_docs = vectorstore.similarity_search(query)
context = "\n".join([doc.page_content for doc in similar_docs])
response = llm(f"Context: {context}\nQuestion: {query}\nAnswer:")
print(response)
```

这种方法允许你使用 LLama 3.2 强大的语言理解功能构建能够理解和推理大量文本数据的应用程序。

## 4、结束语

在本地运行 LLama 3.2 为 AI 驱动的应用程序开辟了一个无限可能的世界。无论您是在寻找简单的聊天交互、基于 API 的集成还是复杂的文档分析系统，这三种方法都可以提供灵活性以适应广泛的用例。

请记住以负责任和合乎道德的方式使用这些强大的工具。祝你编码愉快！

---

原文链接：[3 Ways to Run LLama 3.2 Locally](https://sacha-schwab.medium.com/3-ways-to-run-llama-3-2-locally-79bfaf161669?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处