2025 MacMini M4 安装 Ollama 下载 AI 模型并通过 Page Assist 插件助我学 C

2025 MacMini M4 安装 Ollama 下载 AI 模型并通过 Page Assist 插件助我学 C

2025 MacMini M4 安装 Ollama 下载 AI 模型并通过 Page Assist 插件助我学 C

#C, #CS50, #ollama, #ai, #计算机语言, #开发, #Page Assist


起因

最近有网友说:“你 linux 没有 Vim 编辑器你可以用 C 自己写一个啊,对不对?”,我当时就在想,我根本不会 C 啊,我以前的工作是软件运维搭建环境撑死了会写一个 shell 脚本,其他的都不会了呀,唉现在在老家啃老这两年,连份工作都没找到,要不要学学 C ?是不是要找培训机构?加群?花钱学习还要听他们的规矩呢?可是我纯粹的感兴趣又不是为了找工作,当然如果能有帮助就更好了。AI时代了,我真的需要学习吗?为什么呢?


MacMini M4 安装 Ollama 下载 AI 模型

  1. MacMini M4 参数如下

    OS: macOS 26.1 25B78 arm64
    Host: Mac16,10
    Kernel: 25.1.0
    Packages: 25 (brew)
    Shell: zsh 5.9
    Terminal: Apple_Terminal
    Terminal Font: SFMono-Regular
    CPU: Apple M4
    GPU: Apple M4
    Memory: 13852MiB / 16384MiB
    
  2. 访问Ollama官网下载Download for macOS得到 Ollama.dmg 打开拖动应用到 Applications

  3. 访问Ollama官网提供的适配模型列表,默认是按照流行度排序,这里选用版本从新到旧降序排序,由于我的机器性能很差只能运行轻量级模型,所以选择的关键字大概是 4b q4_K_M 等其含义是 40亿参数q4_K_M量化版本 再深的含义我就不懂了,能用就行也没必要懂,哼😡,然后需要看每个列表描述找到和编程代码相关的词汇 code program 等等。最终我选择了gemma3:4b-it-q4_K_M模型来作为我的老师

  4. 打开 MacOS 终端,创建一个目录,我打算创建一个 Desktops 专为运行 Ollama 服务,此后每次开次开机需要的时候都要手动运行,命令如下:

    # 创建自定义目录并进入
    mkdir -pv $HOME/Desktops/
    cd $HOME/Desktops/
    
    # 停止 ollama 服务和客户端
    pkill -f 'ollama serve'
    pkill -f 'Ollama'
    
    # 后台运行 ollama 服务,自定义监听全网段 0.0.0.0 和端口 11434
    nohup OLLAMA_HOST="0.0.0.0:11434" ollama serve > ./ollama.log 2>&1 & disown
    
    # 后台运行 ollama 客户端
    nohup /Applications/Ollama.app/Contents/MacOS/Ollama > /dev/null 2>&1 & disown
    
    # 检查日志是否运行,然后 Ctrl + C 退出日志检查
    tail -f ollama.log
    
  5. 下载模型 gemma3:4b-it-q4_K_M 命令如下:

    # 拉取 gemma3:4b-it-q4_K_M
    ollama pull gemma3:4b-it-q4_K_M
    
    # 检查
    ollama list
    


安装 Page Assist 插件

  1. 由于我不想在 ollama 官方的 GUI 界面上聊天,觉得网页版本的更适应,别问我为什么,个人喜好哼😡,准备为我的 Edge 浏览器安装专门用于 ollama 连接访问的 Page Assist 插件
  2. 访问 Edge 插件商店 搜索 Page Assist 或者也可以直达访问 Page Assist 链接,如果它不变的话,点击 Install 安装
  3. 安装好之后,点击插件访问,一开始如果报错显示什么连接不上的话,也有Page Assist官方github解决文档 ,提个醒,前提是需要通过浏览器自带的开发者工具,选择 Elements 元素菜单栏,将 Page Assist 插件网页表面被报错覆盖的元素删除,这样才能利用官方的手动设置方案解决问题
  4. 配置好了之后,选择模型就可以聊天了,纯英语高大上了啊,哼哼😈
    0


助我学 C

  1. 这一步就很关键了,我之所以做了这么多还不是因为我看不懂 CS50官方 的英语界面,恰好我生逢其时,看来人活的久一点也是有好处的,当初没选择死亡,不知是该高兴还是失落,AI 时代,任何类型的模型都可以是我的老师,再也不用考虑人情世故的卑微,跟人类学习哼不存在的😡,有了AI敞开了学,想学什么学什么,变着花样学,不靠任何人!
  2. 现在我就吟唱魔法让模型为我所用,魔法开场文吟唱如下:
    喵喵喵喵!😈,喵喵喵!
    
    咳咳。。。额弄错了,重来:
    你是一位专业、耐心且严谨的 CS50 课程教授。
    你的任务是使用 C 语言和 CS50 课程( https://cs50.harvard.edu/x )系统性授课解并解答问题。
    严格遵循清晰的代码风格,并以详细的分步解释来帮助学生理解 C 语言概念和程序逻辑。
    学生来自中国,请讲中文并不使用拼音与学生沟通。
    讲课时和回答时,始终保持鼓励和学术态度。
    

1


成果

  1. 看这就是练习几天的效果
    #include <stdio.h>
    
    int main(){
        // 这个是注释
        // %s 其含义是字符串占位符,为字符串 CS50 占位对应位置替换为变量值并格式化输出
        printf("hello %s\n","CS50");
    
        // 这个是变量
        int a = 11;
        int b = 32;
    
        // 这个是变量参与的运算表达式
        int sum = a + b;
    
        // %d 其含义是数字变量占位符,为 a b sum 占位对应位置替换变量值并格式化输出
        printf("%d + %d = %d\n",a,b,sum);
    
        // \n 是转义字符其含义是格式化输出后要换行,没有它则默认格式化输出行尾会有一个 % 的占位字符输出代表没有换行
        // %% 也是一种转义其含义是字面量(不会改变的量,比如字符串) %
        // \\ 表达的含义是字面量 \
    
        printf("如果没有 \\n 占位符号则默认行尾会有一个 %% 占位输出,就像这样: ");
    
        return 0;
    }
    

2
3

  1. AI 时代了,只要喂数据语料通过人工裁剪过校准过的模型,本地部署,都可以极大的方便人的生活,甚至部署到机器人身上离线运作,那么作为人类的我,有必要学习吗?为什么?我想,可能因为人啊对什么感兴趣就会去试着学习学习,这种过程带来的快乐和对糟糕回忆短暂的忘却,唉,是有意义的,有必要学吗?嗯,我想如果未来我真的想开发点什么,或许我自己写的代码我自己能改或者其他人的代码我可以凭借着经验改,让AI写代码可以,可如果是让AI修改可就真的会把代码毁掉,这也许是人必须要学习的原因吧,人总得知道为什么。或许,我这辈子也不知道答案了。


参考

Ollama官网
Ollama官网提供的适配模型列表
Page Assist
Page Assist官方github解决文档
CS50官方

Comments