P
Prompt Master
Prompt Engineering 教程与提示词实战

从任务定义、示例和工作流到评测与安全边界

Prompt Engineering 教程与提示词实战Prompt Library

Science Q&A

science question answering prompt example

本章 Prompt 决定
01要解决的 Prompt 问题

science question answering prompt example

02完成后带走

一份保留任务边界的可复用 Prompt、示例集、评测记录或安全规则。

03做到什么算完成

至少跑一个代表性样本,检查结果,并记录仍需人工复核的部分。

TL;DR(中文)

  • Science Q&A 的关键不是“背知识”,而是:能否从给定 context 中做正确抽取与定位。
  • 适合用来测试:阅读理解、信息抽取、以及在不确定时输出 “Unsure about answer”。
  • 落地时建议:把 context 切片、限制输出长度、并加 evidence 字段或引用片段。

Background

The following prompt tests an LLM's capabilities to perform science question answering.

How to Apply(中文)

这个 prompt 是一个典型的 “answer based on context” 模式:

  • 把你的业务资料(FAQ、policy、product spec、research notes)作为 Context
  • 把用户问题作为 Question
  • 让模型只基于 Context 回答,缺信息就输出 “Unsure about answer”

How to Iterate(中文)

  1. 输出格式结构化:要求 Answer + Evidence(从 Context 复制关键句)
  2. 控制回答长度:短回答更容易对齐输入证据
  3. abstain 规则:不确定就 “Unsure about answer”,不要猜
  4. 多问题批处理:对同一 Context 一次问多个 Question,用 evaluation 比较一致性

Self-check rubric(中文)

  • Answer 是否能在 Context 中找到对应证据?
  • 是否出现 Context 之外的信息(潜在 hallucination)?
  • 是否正确执行 abstain 规则(不确定就 “Unsure about answer”)?

Practice(中文)

练习:用一段 200-400 字的内部文档当 Context,写 5 个问题覆盖:

  • 事实抽取(who/what/when)
  • 因果/目的(why)
  • 数值/条件(how many/under what condition)
  • 反事实(如果缺证据,必须 “Unsure about answer”)

Prompt

Answer the question based on the context below. Keep the answer short and concise. Respond "Unsure about answer" if not sure about the answer.

Context: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use.

Question: What was OKT3 originally sourced from?
Answer:

Code / API

OpenAI (Python)

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4",
    messages=[
        {
            "role": "user",
            "content": "Answer the question based on the context below. Keep the answer short and concise. Respond \"Unsure about answer\" if not sure about the answer.\n\nContext: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use.\n\nQuestion: What was OKT3 originally sourced from?\nAnswer:",
        }
    ],
    temperature=1,
    max_tokens=250,
    top_p=1,
    frequency_penalty=0,
    presence_penalty=0,
)

Fireworks (Python)

import fireworks.client

fireworks.client.api_key = "<FIREWORKS_API_KEY>"

completion = fireworks.client.ChatCompletion.create(
    model="accounts/fireworks/models/mixtral-8x7b-instruct",
    messages=[
        {
            "role": "user",
            "content": "Answer the question based on the context below. Keep the answer short and concise. Respond \"Unsure about answer\" if not sure about the answer.\n\nContext: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use.\n\nQuestion: What was OKT3 originally sourced from?\nAnswer:",
        }
    ],
    stop=["<|im_start|>", "<|im_end|>", "<|endoftext|>"],
    stream=True,
    n=1,
    top_p=1,
    top_k=40,
    presence_penalty=0,
    frequency_penalty=0,
    prompt_truncate_len=1024,
    context_length_exceeded_behavior="truncate",
    temperature=0.9,
    max_tokens=4000,
)

📚 相关资源