import sys
import ollama
OLLAMA_HOST = "http://127.0.0.1:11434"
MODEL_NAME = "qwen3.5:2b"
try:
client = ollama.Client(host=OLLAMA_HOST)
client.show(MODEL_NAME)
except Exception as e:
print(f"连接失败: {e}")
sys.exit(1)
1. 严格保持线性的上下文结构,绝不在中间乱插数据
messages = \[\]
print("已对齐 Page Assist 优化参数。开始聊天:")
print("-" * 50)
while True:
try:
user_input = input("\n用户: ").strip()
if user_input.lower() in 'exit', 'quit': break
if not user_input: continue
messages.append({'role': 'user', 'content': user_input})
print("AI: ", end='', flush=True)
2. 显式传入 options 优化参数,对齐前端 WebUI 的标准配置
response_stream = client.chat(
model=MODEL_NAME,
messages=messages,
stream=True,
options={
"num_ctx": 4096, # 限制上下文大小,大幅提升响应速度
"low_vram": False, # 确保不向 CPU 妥协(如果显存够)
"temperature": 0.7 # 保持正常的发散度
}
)
full_response = ""
for chunk in response_stream:
content = chunk.message.content
if content:
print(content, end='', flush=True)
full_response += content
print()
messages.append({'role': 'assistant', 'content': full_response})
3. 严格的滑动窗口:超过限制时,必须两两成对裁剪,不能打破 user, assistant 的交替交叠
如果打破了交替,Ollama 缓存会当场报废,速度直接暴跌
if len(messages) > 10: # 保持最近 5 轮对话
messages = messages-10:
except KeyboardInterrupt:
print("\n退出")
break
except Exception as e:
print(f"\n错误: {e}")
break
Ollama对话脚本
残影飞雪2026-08-01 15:17
相关推荐
用户956256254296 小时前
跟做:Firecrawl 单页转 Markdown 再丢进沙箱总结威哥爱编程7 小时前
模拟面试智能体开发实战 02:回答等半分钟,谁还愿意练?把服务端和流式输出搭起来威哥爱编程7 小时前
模拟面试智能体开发实战 01:面试挂了都不知道挂在哪?用 Python 给自己造一个随叫随到的 AI 面试官2601_967980117 小时前
Python行情API量化 02:顺序拉 20 要 2 秒?并发批量把时间压到 0.5 秒伞伞悦读7 小时前
【第81期】特征缩放怎么选:标准化、MinMax 与 Robust 的原理、泄漏对照和完整实验新*8 小时前
从一段 WebSocket 代码聊开:bytes 不是 zlib、binaryType 决定一切,15MB 大消息的零拷贝优化卷无止境10 小时前
mathmodel-figure-templates 以及两个上手案例锋行天下11 小时前
服务器 Python 2.7 装不了 langgraph-cli?用本地生成 Dockerfile 曲线救国一条大祥脚11 小时前
深入理解 PyTorch FlexAttention:从 Score Mod 到 Mask Mod 的稀疏加速之道2601_9679801112 小时前
Python自动化办公:模块、库与样式调整教程