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对话脚本
张小明
前端开发工程师
如何快速掌握KaTrain:围棋AI智能教练的完整使用指南
如何快速掌握KaTrain:围棋AI智能教练的完整使用指南 【免费下载链接】katrain Improve your Baduk skills by training with KataGo! 项目地址: https://gitcode.com/gh_mirrors/ka/katrain KaTrain是一款基于KataGo引擎的开源围棋AI训练平台,专为…
BiliBiliToolPro全自动B站任务管理工具:一键配置解放双手的终极指南
BiliBiliToolPro全自动B站任务管理工具:一键配置解放双手的终极指南 【免费下载链接】BiliBiliToolPro B 站(bilibili)自动任务工具,支持docker、青龙、k8s等多种部署方式。全面拥抱AI。敏感肌也能用。 项目地址: https://gitco…
VBA单元格操作:Excel自动化办公的六脉神剑
1. 项目概述:为什么VBA操作单元格是Excel自动化的基石如果你用过Excel,大概率遇到过这样的场景:每天要重复打开几十个表格,把A列的数据复制到B列,删除第5到第10行,然后在第3行插入一个标题,最后…
KiCad PCB设计入门:从原理图到Gerber输出的完整工作流解析
1. 从零开始:为什么选择KiCad作为你的第一块PCB设计工具?如果你正准备踏入电子设计的门槛,或者厌倦了某些商业EDA软件的繁琐授权和性能限制,那么KiCad这个名字你肯定不陌生。作为一个拥有十多年一线经验的硬件开发者,我…
3步快速上手AKShare:Python金融数据接口库完全指南
3步快速上手AKShare:Python金融数据接口库完全指南 【免费下载链接】akshare AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库 项目地址: https://gitcode.com/gh_mirrors/aks/aksha…
json序列化
Go 的 JSON 序列化到底怎么玩?为什么前后端状态字段总对不上? 一句话总结Go 的 encoding/json 包通过结构体 Tag 和自定义 MarshalJSON / UnmarshalJSON,让数据库里的 int 在 JSON 里变成人类可读的文本,而且双向自动转换。它解决…