news 2026/8/1 17:27:10

Ollama对话脚本

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/1 17:25:59

如何快速掌握KaTrain:围棋AI智能教练的完整使用指南

如何快速掌握KaTrain:围棋AI智能教练的完整使用指南 【免费下载链接】katrain Improve your Baduk skills by training with KataGo! 项目地址: https://gitcode.com/gh_mirrors/ka/katrain KaTrain是一款基于KataGo引擎的开源围棋AI训练平台,专为…

作者头像 李华
网站建设 2026/8/1 17:20:04

VBA单元格操作:Excel自动化办公的六脉神剑

1. 项目概述:为什么VBA操作单元格是Excel自动化的基石如果你用过Excel,大概率遇到过这样的场景:每天要重复打开几十个表格,把A列的数据复制到B列,删除第5到第10行,然后在第3行插入一个标题,最后…

作者头像 李华
网站建设 2026/8/1 17:20:00

KiCad PCB设计入门:从原理图到Gerber输出的完整工作流解析

1. 从零开始:为什么选择KiCad作为你的第一块PCB设计工具?如果你正准备踏入电子设计的门槛,或者厌倦了某些商业EDA软件的繁琐授权和性能限制,那么KiCad这个名字你肯定不陌生。作为一个拥有十多年一线经验的硬件开发者,我…

作者头像 李华
网站建设 2026/8/1 17:19:59

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…

作者头像 李华
网站建设 2026/8/1 17:19:50

json序列化

Go 的 JSON 序列化到底怎么玩?为什么前后端状态字段总对不上? 一句话总结Go 的 encoding/json 包通过结构体 Tag 和自定义 MarshalJSON / UnmarshalJSON,让数据库里的 int 在 JSON 里变成人类可读的文本,而且双向自动转换。它解决…

作者头像 李华