Ollama对话脚本

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

相关推荐
傻啦嘿哟2 小时前
某招聘平台爬虫:爬取招聘岗位数据,分析各城市薪资水平
开发语言·爬虫·python
2501_933670792 小时前
2026秋招量化分析岗技能栈:Python、SQL、统计建模、回测项目怎么准备
开发语言·python·sql
2601_962077602 小时前
python Dejavu库快速识别音频指纹实例探究
python·音乐识别·dejavu库·音频指纹识别·实例探究
科技苑2 小时前
如何用Python编程实现一个简单的Web爬虫?
人工智能·python
dayDayupbetter3 小时前
Visual C++ 2010安装与使用高手秘籍
python
隐擎fox3 小时前
深入理解网络传输层安全:TLS 指纹识别(JA3/JA4)原理与 Python 协议层检测实战
爬虫·python·网络协议·安全·网络安全·https
医疗信息化王工3 小时前
DataForge:基于 Python 的数据库批量导出 Excel 工具——从架构到部署的全流程实战
数据库·python·excel
小玮看世界4 小时前
[Python]从合并区间到传感器融合区:合并区间在传感器区域融合的实际落地
开发语言·python
Java陈序员4 小时前
轻量运维面板!一款现代化的服务器控制面板工具!
运维·服务器·python·react.js·github
2601_962097365 小时前
1. 使用 C 或 C++ 扩展 Python
python·api·c·引用计数·扩展模块