🖥️ 一、命令行交互(CLI)

✅ 基础语法

ollama run <模型名>

系统会自动启动模型并进入对话模式:

$ ollama run llama2
>>> 你好,请问你是谁?
← 我是由 Meta 提供的大语言模型 LLaMA2,我可以回答你的问题。

🔄 退出交互

  • 使用快捷键:Ctrl + C

🎯 支持多轮对话(上下文保留)

在单次 run 会话中,Ollama 会自动保持上下文:

>>> 今天的天气怎么样?
>>> 可以推荐一些旅游的地方吗?


🌐 二、本地 REST API 交互

Ollama 内置 HTTP 服务,启动服务:

ollama serve

📡 使用 CURL 示例:

curl http://localhost:11434/api/generate \
  -d '{
    "model": "llama2",
    "prompt": "介绍一下长城的历史",
    "stream": false
  }'

返回结构(JSON):

{
  "model": "llama2",
  "created_at": "2025-04-17T12:00:00Z",
  "response": "长城是中国古代最伟大的建筑工程之一...",
  "done": true
}

💡 参数详解:

参数名类型说明
model字符串使用的模型名(必须已下载)
prompt字符串提示词或提问内容
stream布尔是否逐词输出(适合前端渐显效果)
options字典对象可选,传入 temperature, top_p

🧠 三、自定义角色交互(Modelfile)

你可以通过 Modelfile 设定角色与背景:

示例:

FROM gemma
SYSTEM "你是一个资深程序员,请用简洁专业的术语回答问题。"

构建并交互:

ollama create coder-bot -f Modelfile
ollama run coder-bot

模型将以系统提示为“人格”,持久存在。


🧩 四、前端 WebUI 交互方式(推荐)

1. Open WebUI (最推荐)

2. LM Studio

  • 地址:https://lmstudio.ai
  • 图形化本地模型管理与对话工具
  • 支持连接 Ollama(需设置路径)

3. GPT UI / AnyGPT / ChatUI

  • 轻量前端页面,对接 REST API 即可使用

🔧 五、交互增强技巧(高级)

✅ 自定义上下文预置(使用 prompt 模板)

通过 Modelfiletemplate 字段:

FROM llama2
TEMPLATE """You are a helpful AI.
User: {{ .Prompt }}
AI:"""

✅ 多轮上下文管理(手动传递)

{
  "model": "qwen",
  "prompt": "你叫什么名字?",
  "context": [ ... ]
}

你可以自己缓存对话历史上下文,并不断追加到新请求中实现多轮对话(RAG、Agent 场景适用)。


🧠 六、Ollama 与插件交互(实验性)

可使用 Ollama 与:

  • 🧭 LangChain(提示管理、工具链调用)
  • 📚 LlamaIndex(知识库问答)
  • 🗂️ AutoGen(多智能体协作)
  • 🧾 文档对话(如 PDF 阅读助手)

✅ 推荐使用方式对比

方式是否推荐特点
CLI 命令行✅ 常用快速测试、开发调试
REST API✅ 推荐易集成前端/后端、可构建应用
Modelfile 定义角色✅ 强烈推荐自定义人格与上下文提示,适用于生产部署
Web UI 工具✅ 推荐用户体验好,适合非开发用户