1、下载ollama软件

访问 Ollama 官网下载页面,获取适用于 Windows 的安装程序(OllamaSetup.exe)

2、安装完后下载deepseek-r1:1.5b模型

运行Ollama程序,打开界面如下,新建回话界面查找deepseek-r1:1.5b模型,然后点击下载图标即可。

当然也可以通过命令行进行下载cmd窗口输入:ollama pull deepseek-r1:1.5b





3、开启聊天

4、对于开发者通过启动服务进行访问

cmd窗口输入指令ollama serve 启动ollama服务

ollama serve 

启动后,默认开启http://localhost:11434/服务端,浏览器输入网址后如下图:

5、编写python脚本demo.py

import os
from openai import OpenAI

def main():
    # 初始化客户端
    client = OpenAI(
        api_key="not-needed",
        base_url="http://localhost:11434/v1"
    )
    
    # 初始化对话历史(包含系统设定)
    messages = [
        {"role": "system", "content": "你是一名专业的编程助手,回答要简洁准确"}
    ]
    
    print("=" * 60)
    print("🤖 AI 交互模式已启动")
    print("💡 输入 'exit' 或 'quit' 退出程序")
    print("💡 按 Ctrl+C 强制退出")
    print("=" * 60)
    
    while True:
        try:
            # 获取用户输入
            user_input = input("\n你: ").strip()
            
            # 退出命令
            if user_input.lower() in ['exit', 'quit']:
                print("\n👋 退出程序...")
                break
            
            # 跳过空输入
            if not user_input:
                continue
            
            # 添加用户消息到历史记录
            messages.append({"role": "user", "content": user_input})
            
            # 创建流式响应(实时显示)
            print("\nAI: ", end="", flush=True)
            
            response = client.chat.completions.create(
                # model="deepseek-coder",
                model="deepseek-r1:1.5b",
                messages=messages,
                stream=True  # 启用流式传输
            )
            
            # 逐块接收并显示响应
            full_response = ""
            for chunk in response:
                if chunk.choices[0].delta.content is not None:
                    content = chunk.choices[0].delta.content
                    print(content, end="", flush=True)
                    full_response += content
            
            # 将 AI 回复添加到历史记录(用于上下文记忆)
            messages.append({"role": "assistant", "content": full_response})
            
        except KeyboardInterrupt:
            print("\n\n⚠️  程序被用户中断,退出...")
            break
        except Exception as e:
            print(f"\n\n❌ 发生错误: {e}")
            # 出错时移除最后一条用户消息,避免重复错误
            messages.pop()
            continue

if __name__ == "__main__":
    main()

6、运行脚本结果

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐