Cogito-v1-preview-llama-3B保姆级教程:Ollama模型自定义system prompt设置

你是不是也遇到过这种情况:用大模型聊天时,每次都要重复说“请用中文回答”、“请用简洁的语言”、“请扮演一个专业的程序员”……说多了自己都嫌烦。

今天,我就来教你一个一劳永逸的方法——给Cogito-v1-preview-llama-3B模型设置自定义的system prompt(系统提示词)。简单来说,就是给模型一个“出厂设置”,让它每次对话都记住你的要求,不用你再一遍遍重复。

Cogito-v1-preview-llama-3B是Deep Cogito推出的一个3B参数的混合推理模型。别看它体积小,能力可不弱。它在大多数标准测试中都超过了同规模的其他开源模型,比如LLaMA、DeepSeek和Qwen的同类版本。它最大的特点是支持两种模式:直接回答模式和推理模式(回答前会先自我反思一下),而且支持128k的超长上下文和30多种语言。

接下来,我会手把手带你完成三件事:

  1. 快速在Ollama中部署Cogito-v1-preview-llama-3B模型
  2. 学会如何给它设置一个专属的、永久生效的system prompt
  3. 通过实际例子,看看设置前后的效果对比

准备好了吗?我们开始吧。

1. 环境准备与模型部署

在设置system prompt之前,我们得先把模型跑起来。这里假设你已经安装好了Ollama。如果还没装,去Ollama官网下载安装,几分钟就好。

1.1 拉取Cogito-v1-preview-llama-3B模型

打开你的终端(命令行工具),输入下面这行命令:

ollama pull cogito-v1-preview-llama-3b

这个命令会从Ollama的模型库中下载Cogito-v1-preview-llama-3B模型。下载速度取决于你的网络,一般几分钟就能完成。看到类似“success”的提示,就说明拉取成功了。

1.2 验证模型运行

模型拉取成功后,我们可以先简单运行一下,看看它是否正常工作:

ollama run cogito-v1-preview-llama-3b

运行后,你会进入一个交互式对话界面。你可以试着问它:“你好,请介绍一下你自己。” 如果它能正常回复,说明模型部署没问题。按 Ctrl+D 可以退出这个交互模式。

好了,模型已经在你的电脑上跑起来了。接下来,就是今天的重头戏——教它“记住”我们的要求。

2. 理解System Prompt:模型的“初始设定”

在深入操作之前,我们先花一分钟搞清楚,什么是system prompt,以及为什么它这么有用。

你可以把system prompt想象成模型的“人格设定”或“工作指令”。它是在用户开始对话之前,就预先加载给模型的一段背景信息。这段信息会始终影响着模型的这次对话。

没有system prompt时: 你:请用Python写一个快速排序函数。 模型:(可能用任何语言、任何风格回答)

有system prompt时(假设我们设定了“你是一个专业的Python程序员,请用简洁的代码和中文注释回答”): 你:请写一个快速排序函数。 模型:(会直接用Python写出简洁的代码,并附上中文注释)

看出来了吗?System prompt让你不用每次对话都重复那些基础要求,大大提升了效率。对于Cogito这类支持长上下文和复杂任务的模型,一个好的system prompt能让它的表现更稳定、更符合你的预期。

3. 为Cogito模型创建自定义Modelfile

Ollama提供了一个非常强大的功能——Modelfile。你可以把它理解成模型的“配置文件”。通过创建一个Modelfile,我们可以对从网上下载的基础模型进行“再包装”,给它注入我们自定义的system prompt。

下面,我们来一步步创建这个文件。

3.1 创建Modelfile文件

首先,在你电脑上找一个方便的位置,比如桌面或者你的项目文件夹里,新建一个文本文件。把它命名为 Cogito-Custom.Modelfile。注意,文件名可以自己定,但后缀 .Modelfile 是Ollama要求的。

3.2 编写Modelfile内容

用任何文本编辑器(记事本、VS Code、Sublime都行)打开这个 Cogito-Custom.Modelfile 文件,然后把下面的内容复制进去:

FROM cogito-v1-preview-llama-3b

# 设置自定义的System Prompt
SYSTEM """
你是一个名为“智囊”的AI助手,由用户深度定制。
你的核心行为准则如下:
1.  **语言**:始终使用简体中文进行思考和回复。
2.  **风格**:回答力求简洁、清晰、直接,避免不必要的客套话和冗余信息。
3.  **角色**:在涉及代码、技术问题时,默认扮演资深程序员角色;在涉及创意、写作时,默认扮演创意顾问角色。
4.  **格式**:代码块请使用正确的语法高亮标记,非代码的长篇回答请合理使用分段和列表提升可读性。
5.  **安全**:拒绝回答任何涉及非法、有害或侵犯隐私的内容。

请牢记以上设定,并在本次对话及未来的所有交互中严格遵守。
"""

我来解释一下这几行代码:

  • FROM cogito-v1-preview-llama-3b:这行告诉Ollama,我们自定义的模型是基于哪个原始模型的。这里就是我们刚下载的Cogito模型。
  • SYSTEM """ ... """:这中间的三引号内容,就是我们要设置的system prompt。你可以把里面所有的文字换成任何你想要的指令。

这里就是你可以自由发挥的地方! 比如,你可以:

  • 把“智囊”改成你喜欢的助手名字。
  • 把“简体中文”改成“英文”或“日语”。
  • 增加角色,比如“当你回答历史问题时,请扮演一位历史学教授”。
  • 规定输出格式,比如“所有总结请用三个要点呈现”。

把你对助手的长期期望,都写在这里。写好后,保存文件。

3.3 从Modelfile创建自定义模型

现在,回到终端。我们需要用这个Modelfile来“构建”一个新的、属于你自己的模型。

首先,用 cd 命令进入到你刚才保存 Cogito-Custom.Modelfile 文件的文件夹。例如,如果你的文件在桌面:

cd ~/Desktop

然后,运行构建命令:

ollama create cogito-custom -f ./Cogito-Custom.Modelfile

这个命令的意思是:创建一个名为 cogito-custom 的新模型(名字你可以自己改,比如 my-helper),构建规则按照当前目录下的 Cogito-Custom.Modelfile 文件来。

执行后,Ollama会开始处理。看到 “success” 提示,就大功告成了!你现在拥有一个名为 cogito-custom 的模型,它内置了你刚刚编写的所有“人格设定”。

4. 使用与效果对比:感受定制的力量

模型创建好了,我们来实际体验一下,看看自定义system prompt到底带来了什么变化。

4.1 运行你的自定义模型

在终端里,运行你的新模型:

ollama run cogito-custom

4.2 效果对比测试

让我们问同一个问题,看看原始模型和自定义模型的表现有何不同。

测试问题:“解释一下什么是递归。”

原始模型(cogito-v1-preview-llama-3b)的可能回答: (可能以英文开始,或者中英混杂,风格不定)

Recursion is a programming technique where a function calls itself...(后续可能是英文或中文)

你的自定义模型(cogito-custom)的回答: (会严格按照你的SYSTEM提示,用简体中文、简洁清晰地回答)

递归是一种编程方法,指函数直接或间接调用自身。 核心要点:

  1. 基准情形:必须有明确的终止条件,防止无限循环。
  2. 递归情形:每次调用都向基准情形推进。
  3. 示例:计算阶乘 factorial(n) = n * factorial(n-1)

简单来说,就是用自我调用来分解问题,适用于树形结构、分治算法等场景。

看到了吗?自定义模型从第一句开始就使用了中文,并且结构清晰,直接进入了“程序员角色”该有的回答模式,完全省去了你要求“用中文”、“简洁点”的步骤。

4.3 更多玩法尝试

你可以尝试问更多问题,体验这个定制助手的便利:

  • “写一个Python爬虫,获取网页标题。” (它会直接给出带注释的代码)
  • “帮我构思一个科幻短篇小说的开头。” (它会以创意顾问的口吻回答)
  • 用英文问它问题,观察它是否依然坚持用中文回复(根据你的SYSTEM设定)。

5. 进阶技巧与常见问题

掌握了基本方法后,我们再来看几个能让你的定制模型更好用的小技巧。

5.1 如何修改和更新System Prompt

如果你对之前的设定不满意,想修改怎么办?很简单:

  1. 重新编辑你的 Cogito-Custom.Modelfile 文件,修改 SYSTEM 后面的内容。
  2. 在终端中,先删除旧的模型(如果存在):ollama rm cogito-custom
  3. 重新运行创建命令:ollama create cogito-custom -f ./Cogito-Custom.Modelfile

这样,你就得到了一个更新版的自定义模型。

5.2 在代码中调用自定义模型

除了在终端对话,你当然也可以在Python、JavaScript等代码中调用它。以Python使用ollama库为例:

import ollama

response = ollama.chat(
    model='cogito-custom',  # 指定你自定义的模型名
    messages=[
        {'role': 'user', 'content': '用Python合并两个字典有哪些方法?'}
    ]
)
print(response['message']['content'])

当你调用 cogito-custom 时,你预设的system prompt会自动生效,无需在代码中重复传递。

5.3 可能遇到的问题

  1. 创建模型时提示“already exists”:这意味着同名模型已存在。使用 ollama rm 模型名 删除它,然后再创建。
  2. 模型响应不符合SYSTEM提示:首先检查你的Modelfile语法是否正确,特别是SYSTEM后面的三引号是否成对。其次,极少数情况下,模型可能在长对话后“忘记”初始设定,重启对话即可。
  3. 想临时覆盖SYSTEM提示怎么办:在Ollama的对话或API调用中,你仍然可以在消息列表的最开始,插入一个 {'role': 'system', 'content': '...'} 的消息,这次对话会优先使用这个临时的system提示。

6. 总结

好了,我们来回顾一下今天学到的东西:

6.1 核心收获 通过这篇教程,你掌握了使用Ollama的Modelfile功能,为Cogito-v1-preview-llama-3B这类模型注入自定义system prompt的完整技能。从此,你可以打造一个完全听话、符合你长期使用习惯的专属AI助手,无需在每次对话时重复那些基础指令。

6.2 关键步骤 整个过程可以概括为三步:拉取基础模型 -> 编写包含SYSTEM指令的Modelfile -> 基于Modelfile创建自定义模型。你定制的“人格”或“工作指令”就被永久地封装进了新的模型里。

6.3 扩展思考 这个方法不仅适用于Cogito模型,Ollama支持的任何模型(如Llama、Mistral、Qwen等)都可以通过这种方式进行定制。你可以为不同的任务创建不同的定制模型:一个“代码专家”、一个“创意写手”、一个“学术翻译”……灵活组合,随用随取。

告别重复的提示,开始享受拥有专属AI助手的效率提升吧。动手试试,给你的Cogito模型赋予一个独特的“灵魂”。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐