[ blog · use-case ]11 min read

การค้นคืนคำพิพากษาสหราชอาณาจักรที่ยึดโยงกับการอ้างอิงหลังคดี Ayinde v Haringey

Sarah Choyเผยแพร่ 3 พฤษภาคม 2569อ่าน 11 นาที
การค้นคืนคำพิพากษาสหราชอาณาจักรที่ยึดโยงกับการอ้างอิงหลังคดี Ayinde v Haringey

คดี Ayinde v Haringey เปลี่ยนสมการของ AI ด้านกฎหมายในสหราชอาณาจักรภายในชั่วข้ามคืน ทนายความ (barrister) รายหนึ่งอ้างคดีปลอมห้าคดีที่ LLM สร้างขึ้น และถูกส่งเรื่องไปยัง Bar Standards Board การอ้างอิงที่หลอน (hallucinated) ตอนนี้มีผลทางจรรยาบรรณวิชาชีพแล้ว นี่คือคู่มือสำหรับนักพัฒนาในการสร้างการค้นคืนคำพิพากษาสหราชอาณาจักรที่ยึดโยงกับการอ้างอิง — TNA Find Case Law, legislation.gov.uk, การแยกวิเคราะห์การอ้างอิงแบบ neutral citation และวิธีต่อเข้ากับ agent ที่ใช้งานได้จริง

สรุปสั้น

  • คดี Ayinde v Haringey [2025] EWHC 1383 (Admin) ทำให้การอ้างอิงคดีที่หลอนกลายเป็นประเด็นทางจรรยาบรรณวิชาชีพ ไม่ใช่แค่ปัญหาด้านคุณภาพ
  • เงื่อนไขของ BAILII จำกัดการเข้าถึงจำนวนมากผ่านโปรแกรม บริการ Find Case Law ของ The National Archives คือ API ที่ถูกต้องตามกฎหมายสำหรับคำพิพากษาของอังกฤษและเวลส์
  • legislation.gov.uk มี Developer API ที่เสถียรพร้อมการเข้าถึงแบบ point-in-time — จำเป็นสำหรับงานด้าน compliance ที่คำว่า 'มีผลบังคับใช้เมื่อวันที่ 30 มิถุนายน 2024' เป็นคำค้นจริง
  • การศึกษา 'Hallucination-Free?' ของ Stanford HAI แสดงให้เห็นว่า Westlaw และ Lexis+ AI ยังคงหลอนอยู่ 17–33% ของเวลา — การยึดโยงกับการอ้างอิงคือคำตอบเชิงสถาปัตยกรรม ไม่ใช่การเลือกผู้ให้บริการ
  • API Pick UK Legal Search ห่อหุ้มการค้นคืนเชิงความหมายเหนือคำพิพากษาและกฎหมายหลักไว้ในหนึ่ง POST — 60 เครดิตต่อการเรียกหนึ่งครั้ง

คดีที่เปลี่ยนสมการ

เมื่อวันที่ 6 มิถุนายน 2025 ศาล Divisional Court ของ King's Bench Division ได้ออกคำพิพากษาสองคดีในคำตัดสินฉบับเดียว — Ayinde v The London Borough of Haringey และ Al-Haroun v Qatar National Bank QPSC ด้วย neutral citation [2025] EWHC 1383 (Admin) ทั้งสองคดี ฝ่ายทนายได้ยื่นเอกสารที่อ้างบรรทัดฐานซึ่งไม่มีอยู่จริง ในคดี Ayinde คือคดีที่ถูกแต่งขึ้นห้าคดี ศาลพบว่ามีการละเมิดหน้าที่ทางวิชาชีพและส่งเรื่องผู้ประกอบวิชาชีพเหล่านี้ไปยัง BSB และ SRA ตามลำดับ

ภายใน 48 ชั่วโมง แผนงาน legal-tech ทุกฉบับของสหราชอาณาจักรมีหัวข้อใหม่อยู่บนสุด: การยึดโยงกับการอ้างอิง ไม่ใช่ในฐานะรายละเอียดด้านคุณภาพที่ดูดี แต่ในฐานะความจำเป็นเชิงกำกับดูแล การศึกษา 'Hallucination-Free?' ของ Stanford HAI (Magesh et al., พฤษภาคม 2024) ได้แสดงให้เห็นแล้วว่าเครื่องมือชั้นนำของผู้ให้บริการ — Lexis+ AI, Westlaw AI — หลอนการอ้างอิง 17–33% ของเวลาในคำค้นที่ทำ benchmark คดี Ayinde เปลี่ยนผลการค้นพบเชิงวิชาการนั้นให้กลายเป็นปัญหาด้าน compliance

สำหรับนักพัฒนาที่กำลังฝังฟีเจอร์ AI เข้าไปในผลิตภัณฑ์กฎหมายของสหราชอาณาจักร บทเรียนเชิงสถาปัตยกรรมชัดเจน: การค้นคืนต้องมาจากแหล่งที่มีอำนาจ การอ้างอิงต้องตรวจสอบย้อนไปยังแหล่งที่มาได้ และระบบต้องปฏิเสธที่จะตอบเมื่อไม่สามารถยึดโยงคำตอบกับหลักฐานได้ สิ่งอื่นใดล้วนเป็นการส่งเรื่องไปยังหน่วยงานกำกับดูแลที่รอเวลาจะเกิดขึ้น

นี่คือคู่มือนักพัฒนาที่ใช้งานได้จริงในการทำสิ่งนี้ให้ถูกต้อง: ควรใช้ API ตัวไหน กับดักของมันคืออะไร และจะต่อเข้ากับ agent ที่ใช้งานได้จริงอย่างไร

แหล่งที่มีอำนาจ

1. National Archives Find Case Law

ดำเนินการโดย The National Archives (TNA) ครอบคลุมคำพิพากษาที่ออกตั้งแต่เดือนเมษายน 2003 จาก High Court, Court of Appeal, UK Supreme Court, Privy Council และ tribunal หลายแห่ง เอกสารอยู่ในมาตรฐาน XML แบบ Akoma Ntoso (LegalDocML) API สาธารณะที่ caselaw.nationalarchives.gov.uk ส่วนฟีดข้อมูลจำนวนมากผ่านการยื่นคำขอที่ต้องขออนุมัติเพื่อวัตถุประสงค์ "การวิเคราะห์เชิงคำนวณ"

จุดแข็ง: แหล่งที่มีอำนาจสำหรับคำพิพากษาของอังกฤษและเวลส์ XML ที่มีโครงสร้างรักษาโครงสร้างของคำพิพากษา (หมายเลขย่อหน้า การอ้างอิง หัวข้อ) เงื่อนไข Open Government Licence อนุญาตให้นำกลับมาใช้ซ้ำโดยระบุแหล่งที่มา จุดอ่อน: ความครอบคลุมจำกัดก่อนปี 2003 ต้องยื่นคำขอสำหรับฟีดจำนวนมาก LegalDocML แยกวิเคราะห์ (parse) ได้หนักหากคุณไม่เคยแตะ XML ด้านกฎหมายมาก่อน

2. Developer API ของ legislation.gov.uk

ดำเนินการโดย TNA ครอบคลุมกฎหมายหลักของสหราชอาณาจักร (Acts of Parliament), statutory instruments และเทียบเท่าของไอร์แลนด์เหนือ / สกอตแลนด์ / เวลส์ ที่สำคัญคือรองรับคำค้นแบบ point-in-time: 'บทบัญญัตินี้มีหน้าตาอย่างไรเมื่อวันที่ 1 เมษายน 2018'

จุดแข็ง: เสถียร มีเอกสารที่ดี เข้าถึงแบบ point-in-time ใช้ใบอนุญาต OGL จุดอ่อน: schema (CLML) มีเอกลักษณ์ของตัวเอง การแก้ไขเพิ่มเติมไม่ได้ถูกติดตามย้อนหลังอย่างสม่ำเสมอทั้งหมด โมเดลวันที่มีผลบังคับใช้อาจทำให้คุณประหลาดใจได้

3. BAILII (อ่านอย่างเดียวผ่านเว็บสำหรับมนุษย์)

ผู้รวบรวมข้อมูลกฎหมายที่มีมายาวนาน สำคัญยิ่งสำหรับเขตอำนาจศาลและประเภทเอกสารที่ Find Case Law ไม่ครอบคลุม (คำพิพากษาเก่ากว่า เอกสารสกอตแลนด์ / ไอร์แลนด์เหนือ คำตัดสินของ tribunal บางส่วน) การ scrape จำนวนมากถูกจำกัดโดยเงื่อนไขของ BAILII จงถือว่ามันเป็นตัวสำรองที่มนุษย์อ่านได้ ไม่ใช่ API

การค้นหาเชิงความหมายทั่วคำพิพากษาและกฎหมายหลักของสหราชอาณาจักรในหนึ่ง endpoint แบบ POST JSON เข้า / JSON ออก 60 เครดิตต่อการเรียกหนึ่งครั้ง เรียกเก็บเงินเฉพาะเมื่อสำเร็จ ส่งคืนชื่อเรื่อง neutral citation, URL แหล่งที่มา และ snippet ที่จัดอันดับตามความเกี่ยวข้องเชิงความหมาย ออกแบบมาสำหรับการเรียกใช้เครื่องมือของ AI agent

เทียบเคียงกัน

แหล่งข้อมูล ณ เวลาที่เขียน โปรดยืนยันเงื่อนไขใบอนุญาตกับ TNA ก่อนการนำไปใช้เชิงพาณิชย์
Find Case Lawlegislation.gov.ukAPI Pick UK Legal Search
ความครอบคลุมคำพิพากษา E&W ตั้งแต่ 2003กฎหมาย + SIs ของสหราชอาณาจักร, point-in-timeคำพิพากษา + กฎหมาย, เชิงความหมาย
รูปแบบAkoma Ntoso XMLCLML XML + JSON / AtomJSON, snippet ขึ้นรูปมาแล้ว
การค้นหาคำสำคัญคำสำคัญ + เชิงโครงสร้างเชิงความหมาย
การยืนยันตัวตนไม่ต้องสำหรับส่วนสาธารณะ; ฟีดจำนวนมากต้องยื่นคำขอไม่ต้องx-api-key
ใบอนุญาตOpen Government LicenceOpen Government LicenceTOS ของ API Pick
ความเหมาะสมแหล่งความจริงระดับ complianceค้นหากฎหมาย, คำค้น point-in-timeการค้นคืนสำหรับ AI agent, ชั้น RAG

สถาปัตยกรรมที่อยู่รอดจาก Ayinde

สแตกขั้นต่ำที่ใช้งานได้ซึ่งยึดโยงกับการอ้างอิง:

Question → [LLM agent]
              ↓ tool_use(uk_legal_search)
            [API Pick UK Legal Search] → ranked authorities
              ↓ tool_use(extract_urls)
            [API Pick URL Extract] → full judgment / statute body
              ↓ Agent reads, drafts answer
              ↓ Citation-required prompt rule
          Answer with [Neutral Citation, Section/Paragraph]
              ↓ Final verification pass
          Refuse if citation can't be matched in extracted text

รอบการตรวจสอบ (verification pass) คือจุดที่ทีมส่วนใหญ่ล้มเหลว การเพียงขอให้โมเดล 'อ้างอิงแหล่งที่มา' ไม่เพียงพอ — คุณต้องตรวจสอบด้วยโปรแกรมว่าทุกบรรทัดฐานที่ถูกอ้างปรากฏอยู่ในข้อความที่ดึงออกมา (extracted) หากไม่ปรากฏ ให้ปฏิเสธคำตอบหรือส่งขึ้นมาให้มนุษย์ตรวจสอบ

โค้ดที่ใช้งานได้จริง

import re, requests
from anthropic import Anthropic

KEY = "pk_yourkey"
client = Anthropic()

def fetch_tool(path: str) -> dict:
    return requests.get(f"https://www.apipick.com{path}/tool-schema").json()["claude"]

TOOLS = [
    fetch_tool("/api/search/uk-legal"),
    fetch_tool("/api/extract"),
]

SYSTEM = """You are a UK legal research assistant. You answer questions about
England & Wales case law and UK primary legislation using the tools available.

Rules — non-negotiable:

1. Use uk_legal_search to find authorities relevant to the question.
2. For authorities you intend to cite, use extract_urls to retrieve the
   full text. Do not cite anything you have not extracted.
3. Cite every legal proposition with a neutral citation in standard form:
   [YYYY] EWHC|EWCA|UKSC NNN (Court), §[paragraph] — for cases.
   Section N(M) of the [Act Name] YYYY — for statutes, with point-in-time
   noted if relevant.
4. If the search returned no relevant authority, or the relevant text was
   not extracted, say so explicitly: "I could not retrieve a sufficient
   authority for this question. Please escalate to qualified counsel."
   Do not infer from training-data knowledge.
5. Distinguish ratio from obiter where it matters. Note when an authority
   is first instance, appellate, or Supreme Court.
6. For legislation, default to the in-force version. State the date you used.
7. This output is informational retrieval, not legal advice."""

def call_tool(b):
    paths = {"uk_legal_search": "/api/search/uk-legal", "extract_urls": "/api/extract"}
    r = requests.post(
        f"https://www.apipick.com{paths[b.name]}",
        json=b.input,
        headers={"x-api-key": KEY},
        timeout=60,
    )
    return {"type": "tool_result", "tool_use_id": b.id,
            "content": r.text, "is_error": r.status_code != 200}

NEUTRAL_CITATION = re.compile(r"\[(\d{4})\]\s+(EWHC|EWCA|UKSC)\s+\d+")

def verify_citations(answer: str, extracted_text: str) -> list[str]:
    """Return list of citations in the answer that don't appear in extracted text."""
    cites = NEUTRAL_CITATION.findall(answer)
    return [
        f"[{year}] {court}" for year, court in cites
        if f"[{year}] {court}" not in extracted_text
    ]

def legal_research(question: str) -> str:
    msgs = [{"role": "user", "content": question}]
    extracted_buffer = ""

    while True:
        r = client.messages.create(
            model="claude-sonnet-4-6",
            max_tokens=4096,
            system=SYSTEM,
            tools=TOOLS,
            messages=msgs,
        )
        msgs.append({"role": "assistant", "content": r.content})

        if r.stop_reason == "end_turn":
            answer = "\n".join(b.text for b in r.content if b.type == "text")
            unverified = verify_citations(answer, extracted_buffer)
            if unverified:
                return (
                    "REFUSED: the answer cited authorities that were not retrieved. "
                    f"Unverified: {unverified}. Escalate to qualified counsel."
                )
            return answer

        if r.stop_reason == "tool_use":
            results = []
            for b in r.content:
                if b.type != "tool_use":
                    continue
                tr = call_tool(b)
                if b.name == "extract_urls":
                    extracted_buffer += tr["content"]
                results.append(tr)
            msgs.append({"role": "user", "content": results})

print(legal_research(
    "What is the test for breach of duty by a public authority "
    "post Roberts v Soldiers, Sailors, Airmen and Families Association?"
))

สามสิ่งที่โค้ดนี้ทำแต่การนำไปใช้แบบขี้เกียจไม่ทำ: (1) มันดึงข้อความเต็มของทุกบรรทัดฐานที่ถูกอ้างผ่าน extract ก่อนที่จะพึ่งพามัน (2) มันปฏิเสธคำตอบที่สตริง neutral citation ไม่ได้ปรากฏจริงในข้อความที่ดึงมาใด ๆ (3) มันฝังการปฏิเสธ 'ฉันไม่สามารถค้นคืนบรรทัดฐานที่เพียงพอได้' ไว้ใน system prompt เพื่อให้โมเดลมีทางออกที่งดงามเมื่อการค้นคืนล้มเหลว

เพดานต้นทุน

การเรียกวิจัยกฎหมายโดยทั่วไป:

  • การเรียกค้นหา 1 ครั้ง — 60 เครดิต (~$0.06)
  • การเรียก extract 1 ครั้งที่ครอบคลุม 2–4 บรรทัดฐาน — 4–8 เครดิต (~$0.004–$0.008)
  • token อินพุตของ Claude ~6,000 + เอาต์พุต 1,500 — ~$0.05

ตัวเลขกลม ๆ: ~$0.12 ต่อคำตอบที่วิจัยพร้อมการอ้างอิง ที่ 100 คำถาม/วันสำหรับทีมกฎหมายภายในองค์กรขนาดเล็กก็เท่ากับ $12/วัน — ต่ำกว่าค่าสมัครสมาชิก legal-tech เชิงพาณิชย์ใด ๆ มาก และคุณควบคุมร่องรอยการตรวจสอบ (audit trail) เอง

ที่ที่สิ่งนี้ขยายผลได้ทั่วไป

รูปแบบสถาปัตยกรรม 'การยึดโยงกับการอ้างอิง' ไม่ได้ใช้กับคำพิพากษาสหราชอาณาจักรเท่านั้น — มันเป็นรูปแบบเดียวกับที่ทำให้ RAG บนเอกสารยื่นต่อ SEC เชื่อถือได้สำหรับ due diligence การลงทุน และที่ทำให้ agent วรรณกรรมทางวิทยาศาสตร์ หลีกเลี่ยงการอ้างอิงงานวิจัยที่หลอนได้ กฎสามข้อรวมพวกมันเข้าด้วยกัน:

  • ค้นคืนก่อน สร้างทีหลัง อย่าปล่อยให้โมเดลผลิตการอ้างอิงที่ไม่ได้อยู่ในบริบทที่ค้นคืนมา
  • ตรวจสอบแบบกำหนดผลได้ (deterministic) regex บนข้อความที่ดึงมามีต้นทุนต่ำและจับการกุเรื่องได้ส่วนใหญ่
  • ปฏิเสธอย่างงดงาม ฝึก system prompt ให้พูดว่า "ฉันไม่สามารถตอบได้อย่างน่าเชื่อถือ" ก่อนที่จะฝึกโมเดลให้เป็นประโยชน์

คดี Ayinde คือช่วงเวลาที่กฎเหล่านี้เปลี่ยนจาก 'แนวปฏิบัติที่ดีทางวิศวกรรม' ไปเป็น 'หนทางเดียวที่จะปล่อย AI ด้านกฎหมายของสหราชอาณาจักรออกสู่ตลาดโดยไม่ทำให้ผู้ใช้ของคุณต้องไปยืนอยู่ต่อหน้า BSB' API Pick UK Legal Search คือชิ้นส่วนก่อสร้างของชั้นค้นหา ส่วนที่เหลือเป็นของคุณที่ต้องต่อเข้าไปเอง

คำถามที่พบบ่อย

จริง ๆ แล้วเกิดอะไรขึ้นในคดี Ayinde v Haringey?

ในเดือนมิถุนายน 2025 ศาล High Court (Ritchie J) พบว่าฝ่ายทนายได้ยื่น skeleton argument ที่อ้างคดีซึ่งไม่มีอยู่จริงห้าคดีที่ LLM สร้างขึ้น บวกกับอีกหนึ่งบรรทัดฐานที่ถูกแต่งขึ้นโดยผู้ประกอบวิชาชีพอีกรายในคดี Al-Haroun v Qatar National Bank คำพิพากษาถูกออกร่วมกันในชื่อ Ayinde v Haringey & Al-Haroun v Qatar National Bank [2025] EWHC 1383 (Admin) ศาลส่งเรื่องผู้ประกอบวิชาชีพเหล่านี้ไปยัง Bar Standards Board และ Solicitors Regulation Authority ตามลำดับ คำตัดสินนี้กลายเป็นบรรทัดฐานมาตรฐานที่ถูกอ้างถึงทุกครั้งที่มีการพูดถึงเรื่อง 'การหลอนของ AI ในการปฏิบัติงานด้านกฎหมาย' ในสหราชอาณาจักร

ฉัน scrape BAILII ได้ไหม?

ไม่ได้ เงื่อนไขของ BAILII จำกัดการเข้าถึงจำนวนมากผ่านโปรแกรม และผู้ดำเนินการได้ระบุเรื่องนี้ไว้อย่างชัดเจน — ดูเอกสารของ Transparency Project เกี่ยวกับจุดยืนของ BAILII เส้นทางที่ถูกต้องตามกฎหมายคือบริการ Find Case Law ของ The National Archives สำหรับคำพิพากษาของอังกฤษและเวลส์ ซึ่งมี API สาธารณะและฟีดข้อมูลจำนวนมากแยกต่างหากที่ต้องยื่นคำขอเพื่อขออนุมัติ

Find Case Law กับ legislation.gov.uk ต่างกันอย่างไร?

Find Case Law (caselaw.nationalarchives.gov.uk) ครอบคลุมคำพิพากษาของศาล — คำตัดสินของ EWHC, EWCA, UKSC และ tribunal ต่าง ๆ ส่วน legislation.gov.uk ครอบคลุมกฎหมายหลักและกฎหมายรอง: Acts of Parliament, statutory instruments และ (สำคัญยิ่งสำหรับงาน compliance) เวอร์ชันย้อนหลังแบบ point-in-time สแตก RAG ด้านกฎหมายของสหราชอาณาจักรที่สมบูรณ์ต้องมีทั้งสองอย่าง

ทำไมกฎหมายแบบ point-in-time จึงสำคัญสำหรับ AI agent?

คำถามทางกฎหมายส่วนใหญ่เกี่ยวกับว่ากฎหมายเป็นอย่างไรในวันที่เฉพาะเจาะจง — วันที่มีการกล่าวหาว่ามีการละเมิด วันที่ลงนามในสัญญา ช่วงเวลาที่หน่วยงานตัดสินใจ การส่งคืนกฎหมายเวอร์ชันปัจจุบันจะให้คำตอบที่ผิดสำหรับคำถามย้อนหลังใด ๆ endpoint สไตล์ /data.feed?type=ukpga&prospective=true ของ legislation.gov.uk แก้ปัญหานี้ได้ เครื่องมือ AI ด้านกฎหมายส่วนใหญ่ที่หลอนวันที่ล้มเหลวเพราะไม่ได้ต่อส่วนนี้เข้าไป

ผลลัพธ์นี้นับเป็นคำแนะนำทางกฎหมายหรือไม่?

ไม่ ผลลัพธ์จาก API ค้นคืนใด ๆ (รวมถึงของเรา) เป็นการค้นคืนข้อมูล ไม่ใช่คำแนะนำทางกฎหมาย solicitor และ barrister ที่ประกอบวิชาชีพในอังกฤษและเวลส์ยังคงผูกพันตามกฎจรรยาบรรณของ SRA / BSB สถาปัตยกรรมที่บทความนี้อธิบายออกแบบมาเพื่อสนับสนุน — ไม่ใช่แทนที่ — การตรวจสอบทางกฎหมายโดยผู้มีคุณสมบัติ บรรทัดฐาน Ayinde ทำให้ความแตกต่างนี้ต่อรองไม่ได้

API ที่ใช้ในบทความนี้

ค้นหากฎหมายอังกฤษ
การค้นหาเชิงความหมายในคำพิพากษาและกฎหมายหลักของสหราชอาณาจักรจาก endpoint เดียว สร้างมาเพื่อการวิจัยกฎหมาย การตรวจสอบการปฏิบัติตามข้อกำหนด การตีความกฎหมาย และเวิร์กโฟลว์ legal-tech ด้วย AI
สกัดเนื้อหาจาก URL
สกัดเนื้อหาที่อ่านง่ายและสะอาดจากได้สูงสุด 25 URL ต่อการเรียก ตัดโฆษณา แถบนำทาง และเนื้อหาซ้ำซาก ส่งคืนข้อความแบบ markdown พร้อมให้ LLM นำเข้า 2 เครดิตต่อ URL
ค้นหาเว็บ
การค้นหาเว็บเชิงความหมายแบบเรียลไทม์ที่สร้างมาเพื่อ LLM tool calling ส่งคืนหัวข้อ URL และ snippet ที่สะอาดและจัดอันดับ จัดรูปแบบมาพร้อมให้ agent นำไปใช้ รองรับตัวกรองตามประเทศและวันที่
Sarah Choy
เขียนโดย
Sarah Choy
CEO, API Pick

Sarah Choy เป็น CEO ของ API Pick เธอเขียนเกี่ยวกับการสร้าง API พร้อมใช้งานจริงสำหรับ AI agent และเวิร์กโฟลว์ LLM