【LLM】如何基于 Claude 写好一个针对超长文档的 prompt

前言


在深入探索如何高效地使用Claude模型时,理解并精心设计 prompt 模板是很重要的。本文介绍了一套详细的指南和技巧,旨在帮助用户最大化语言模型的潜力,通过精确的指令和结构化的输入,实现更加准确和有用的输出。

一个好的 prompt 模版


严格按照下面的规则编写 Claude 的 prompt,就已经写好一大半了。
在这里插入图片描述

需要注意以下几个点:

  1. 左边是 11 个模块,右边是一个示例,颜色与对应的模块一致
  2. 顺序非常重要,虽然官网用的是‘建议’,但我们实测下来,至少针对大文档,不同的顺序会产生不同的效果,严格按照这个顺序进行 prompt 的编写能够得到最稳定、最佳的结果
  3. 如果你使用的是 Claude2.1,那么 Task Context 和 Tone Context 最好是写在 System Prompt 里面

Human: 和 Assistant: 并不是两个完全固定的标签


  1. 一般来说,Claude 被训练为一个对话式的助理,所有的训练数据都是标准的 \n\nHuman:\n\nAssistant: 格式,所以可以简单的理解为 Human: 后面的内容会被 Claude 认为是人的输入,而 Assistant: 则会被 Claude 认为是需要自己输出的部分。这是一个标准的格式,并且 HumanAssistant 标签前面的两个空行也一定不能忽略

  2. 但是不要简单的把 \n\nHuman:\n\nAssistant: 做为一个固定的 prompt 的头和尾标签写在代码里面,至少在以下情况下我们是可以利用 Assistant 这个标签的。

  3. Claude 被训练为尽可能帮助你进行输出,所以 Claude 偶尔会闲聊,比如你让它将输出的结果放到 标签里面,它有可能会在返回结果之前来一句:‘好的,我会严格的按照指定的格式进行输出’,就很尴尬😄,其实要解决这个问题,最好的办法是直接在 Assistant 后面加上标准的 就好了,如下:

    Human: You will be acting as an AI career coach named Joe created by the company AdAstra Careers. Your goal is to give career advice to users.
    
    Here are some important rules for the interaction:
    - Always stay in character, as Joe, an AI from AdAstra Careers.  
    - If you are unsure how to respond, say "Sorry, I didn't understand that. Could you rephrase your question?"
    
    Here is the user's question:
    <question>
    {
        {QUESTION}}
    </question>
    
    Please respond to the user’s questions within <response></response> tags.
    
    Assistant: <response>
    
  4. 这样强制 Claude 只需要输出 的剩余部分,要理解 Claude 做的事情其实是补齐输出,当它看到 Assistant 后面的 标签的时候,它会尽可能的去做出合理的推测和输出,会尽可能的按照这个格式进行输出,就不太可能在闲聊了

  5. 这个在标准的 Claude prompt 里面叫 Put words in Claude’s mouth

  6. 要注意的是如果采用了这种技术,可能需要把 作为 stop sequence 传给 API 方法

一定要编写 Task Context 和 Tone Context


  1. 一般来说让 Claude 保持个性很重要,不仅可以提升用户与 LLM 的交互体验,还可以让 Claude 保持输出的风格,提高输出质量

  2. 在实际编写 prompt 的过程中我们可以通过 Task Context 和 Tone Context 帮助 Claude 明确它的角色以及说话的语气等个性特征,可以让 Claude 知道它所需要扮演的角色并且按照指定的风格和语气输

### 如何使用大型语言模型(LLM) 大型语言模型(LLM)是一种基于人工智能的技术,能够理解和生成自然语言文本。其应用范围广泛,涵盖了从简单的文本补全到复杂的代码生成和多轮对话交互等多种场景[^1]。 #### 使用方法概述 要利用 LLM 的功能,通常可以通过以下方式实现: 1. **API 调用** 很多公司提供了通过 API 访问 LLM 的服务,例如 OpenAI 提供的 GPT 系列、Anthropic 的 Claude 或者 Hugging Face 的开源模型接口。开发者可以发送 HTTP 请求调用这些 API 并传递输入数据来获取模型响应的结果[^3]。 2. **本地部署** 对于某些特定需求或者隐私敏感的应用场景,可以选择下载并自行托管 LLM 模型实例。这需要一定的计算资源支持以及熟悉 Docker 容器化环境或其他类似的虚拟化技术以便管理复杂的工作负载[^4]。 3. **微调与定制化训练** 如果标准版本无法满足具体业务要求,则可考虑采用迁移学习策略对基础预训练好的通用型大模型进一步优化调整权重参数使之更贴合实际应用场景下的语料特点从而提高针对性表现效果。此过程往往涉及收集标注好质量较高的领域专有数据集作为额外补充素材参与新一轮迭代更新流程直至达到预期目标为止[^2]。 以下是 Python 中通过 `requests` 库访问某个假定开放平台上的 LLM 接口的一个简单例子: ```python import requests def query_llm(prompt, api_key="your_api_key"): url = "https://api.example.com/v1/completions" headers = {"Authorization": f"Bearer {api_key}"} payload = { "model": "example-model", "prompt": prompt, "max_tokens": 50 } response = requests.post(url, json=payload, headers=headers) if response.status_code == 200: result = response.json() return result['choices'][0]['text'] else: raise Exception(f"Request failed with status code {response.status_code}") # 测试函数 if __name__ == "__main__": user_input = "解释一下什么是量子力学?" output = query_llm(user_input) print(output) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值