วิธีทดสอบแอปพลิเคชัน LLM: คู่มือ Promptfoo ฉบับสมบูรณ์ (2026)

Ashley Innocent

Ashley Innocent

19 March 2026

วิธีทดสอบแอปพลิเคชัน LLM: คู่มือ Promptfoo ฉบับสมบูรณ์ (2026)

Apidog สำหรับองค์กร

ติดตั้งภายในองค์กร

SSO & RBAC

รองรับ SOC 2

สำรวจ Apidog Enterprise

สรุปย่อ

Promptfoo เป็นเฟรมเวิร์กโอเพนซอร์สสำหรับการประเมินและ Red-teaming LLM (Large Language Model) ที่ช่วยให้นักพัฒนาสามารถทดสอบแอปพลิเคชัน AI ได้อย่างเป็นระบบ รองรับผู้ให้บริการโมเดลกว่า 90 ราย มีปลั๊กอินโจมตีด้านความปลอดภัยกว่า 67 รายการ และทำงานแบบ 100% บนเครื่องเพื่อความเป็นส่วนตัว ด้วยยอดดาวน์โหลด npm 1.6 ล้านครั้ง และการใช้งานจริงในบริษัทที่ให้บริการผู้ใช้กว่า 10 ล้านคน ทำให้ Promptfoo กลายเป็นมาตรฐานสำหรับการทดสอบ LLM เริ่มต้นใช้งานได้ด้วย npm install -g promptfoo และ promptfoo init --example getting-started

บทนำ

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

สถานการณ์นี้เกิดขึ้นทุกวัน ทีมงานส่งมอบแอปพลิเคชัน LLM โดยอาศัยความรู้สึกและการทดสอบด้วยตนเอง เพียงเพื่อจะค้นพบช่องโหว่และปัญหาด้านคุณภาพในการผลิต ต้นทุนในการแก้ไขปัญหาเหล่านี้หลังจากการเปิดตัวนั้นสูงกว่าการค้นพบในระหว่างการพัฒนาถึง 100 เท่า

Promptfoo แก้ปัญหานี้ด้วยการนำการทดสอบแบบอัตโนมัติและเป็นระบบมาใช้กับแอปพลิเคชัน LLM ช่วยให้คุณสามารถประเมินพรอมต์ในหลายโมเดล เรียกใช้การประเมิน Red-team ด้านความปลอดภัย และตรวจจับข้อผิดพลาดก่อนที่จะไปถึงผู้ใช้

ฉันได้วิเคราะห์โค้ดเบสของ promptfoo (เวอร์ชัน 0.121.2) และทดสอบคุณสมบัติหลักเพื่อนำเสนอคู่มือฉบับสมบูรณ์นี้ให้คุณ คุณจะได้เรียนรู้วิธีตั้งค่าการประเมิน เรียกใช้การสแกนความปลอดภัย ผสานรวมกับ CI/CD และหลีกเลี่ยงข้อผิดพลาดทั่วไป

ในตอนท้าย คุณจะมีชุดการทดสอบที่ใช้งานได้สำหรับแอปพลิเคชัน LLM ของคุณ และรู้วิธีที่จะส่งมอบผลิตภัณฑ์ด้วยความมั่นใจ

💡
หากคุณทำงานกับการทดสอบ API หรือต้องการตรวจสอบพฤติกรรม API ควบคู่ไปกับการทดสอบ LLM ของคุณ Apidog มีแพลตฟอร์มแบบครบวงจรสำหรับการออกแบบ API, การทดสอบ และการจัดทำเอกสาร คุณสามารถใช้เครื่องมือทั้งสองร่วมกัน: promptfoo สำหรับการประเมิน LLM และ Apidog สำหรับการตรวจสอบเลเยอร์ API
button

Promptfoo คืออะไร และทำไมคุณถึงต้องการมัน

Promptfoo เป็นเครื่องมือบรรทัดคำสั่ง (command-line tool) และไลบรารี Node.js สำหรับการประเมินและ red-teaming แอปพลิเคชัน LLM ลองนึกภาพว่าเป็นเฟรมเวิร์กการทดสอบที่สร้างขึ้นโดยเฉพาะสำหรับลักษณะเฉพาะของการพัฒนา AI

เครื่องมือทดสอบแบบดั้งเดิมล้มเหลวเมื่อใช้กับ LLM เนื่องจากผลลัพธ์ไม่เป็นแบบกำหนด (non-deterministic) คุณไม่สามารถยืนยันการจับคู่สตริงที่แน่นอนได้เมื่อพรอมต์เดียวกันสร้างการตอบสนองที่แตกต่างกันในแต่ละครั้ง Promptfoo แก้ปัญหานี้ด้วย:

เครื่องมือนี้ทำงานบนเครื่องของคุณ ข้อมูลพรอมต์และข้อมูลการทดสอบของคุณจะไม่ออกจากสภาพแวดล้อมของคุณเว้นแต่คุณจะเลือกใช้คุณสมบัติคลาวด์ การออกแบบที่เน้นความเป็นส่วนตัวนี้ทำให้เหมาะสำหรับการทดสอบข้อมูลที่ละเอียดอ่อน

ปัญหาที่ Promptfoo แก้ไข

ทีมส่วนใหญ่ทดสอบแอปพลิเคชัน LLM ด้วยตนเอง พวกเขาส่งพรอมต์ไม่กี่ชุด อ่านผลลัพธ์ และตัดสินใจว่าทุกอย่างดูดีหรือไม่ วิธีการนี้มีข้อบกพร่องร้ายแรงสามประการ:

  1. ไม่มีการตรวจจับข้อผิดพลาด (No regression detection) - คุณไม่สามารถบอกได้ว่าการอัปเดตโมเดลทำให้ฟังก์ชันการทำงานที่มีอยู่เสียหายหรือไม่
  2. ช่องว่างในการครอบคลุม (Coverage gaps) - การทดสอบด้วยตนเองพลาดกรณีขอบ (edge cases) และอินพุตที่เป็นอันตราย (adversarial inputs)
  3. ไม่มีตัวชี้วัด (No metrics) - คุณไม่สามารถติดตามการปรับปรุงหรือเปรียบเทียบโมเดลได้อย่างเป็นกลาง

Promptfoo แทนที่สิ่งนี้ด้วยการประเมินอัตโนมัติที่ทำงานกับการเปลี่ยนแปลงทุกครั้ง คุณกำหนดกรณีทดสอบเพียงครั้งเดียวและดำเนินการกับโมเดลใดก็ได้ ผลลัพธ์รวมถึงอัตราการผ่าน/ไม่ผ่าน การเปรียบเทียบต้นทุน และตัวชี้วัดเวลาแฝง

ใครใช้ Promptfoo

โครงการนี้มียอดดาวน์โหลด npm 1.6 ล้านครั้ง และขับเคลื่อนแอปพลิเคชัน LLM ที่ให้บริการผู้ใช้ปลายทางกว่า 10 ล้านคน บริษัทต่างๆ ใช้มันสำหรับ:

ในเดือนมีนาคม 2026 Promptfoo ได้เข้าร่วม OpenAI โครงการยังคงเป็นโอเพนซอร์สและได้รับอนุญาตภายใต้ MIT License พร้อมกับการพัฒนาต่อเนื่องภายใต้การเป็นเจ้าของใหม่

เริ่มต้นใช้งาน: ติดตั้งและรันการประเมินครั้งแรกของคุณ

คุณสามารถติดตั้ง promptfoo ทั่วโลก (globally) หรือรันโดยไม่ต้องติดตั้งโดยใช้ npx

การติดตั้ง

# การติดตั้งแบบทั่วโลก (แนะนำ)
npm install -g promptfoo

# หรือรันโดยไม่ต้องติดตั้ง
npx promptfoo@latest

# ผู้ใช้ macOS สามารถใช้ Homebrew ได้ด้วย
brew install promptfoo

# ผู้ใช้ Python สามารถใช้ pip ได้ด้วย
pip install promptfoo

ตั้งค่าคีย์ API ของคุณเป็นตัวแปรสภาพแวดล้อม:

export OPENAI_API_KEY=sk-abc123
export ANTHROPIC_API_KEY=sk-ant-xxx

สร้างการประเมินครั้งแรกของคุณ

เริ่มต้นโปรเจกต์ตัวอย่าง:

promptfoo init --example getting-started
cd getting-started

สิ่งนี้จะสร้างไฟล์ promptfooconfig.yaml พร้อมตัวอย่างพรอมต์ ผู้ให้บริการ และกรณีทดสอบ

รันการประเมิน:

promptfoo eval

ดูผลลัพธ์ใน UI บนเว็บ:

promptfoo view

UI จะเปิดขึ้นที่ localhost:3000 และแสดงการเปรียบเทียบแบบเคียงข้างกันของผลลัพธ์จากแต่ละโมเดล พร้อมสถานะผ่าน/ไม่ผ่านสำหรับการยืนยันแต่ละรายการ

ทำความเข้าใจไฟล์การกำหนดค่า

ไฟล์ promptfooconfig.yaml กำหนดชุดการประเมินของคุณ:

description: "My First Eval Suite"

prompts:
  - prompts/greeting.txt
  - prompts/farewell.txt

providers:
  - openai:gpt-4o
  - anthropic:claude-sonnet-4-5

tests:
  - vars:
      input: "Hello"
    assert:
      - type: contains
        value: "Hi"
      - type: latency
        threshold: 3000

คุณสามารถขยายสิ่งนี้ไปสู่กรณีทดสอบหลายร้อยรายการได้ หลายทีมเก็บการกำหนดค่าการประเมินไว้ในการควบคุมเวอร์ชันและรันใน CI สำหรับทุกคำขอพูล

คุณสมบัติหลัก: Promptfoo ทำอะไรได้บ้าง

1. การประเมินแบบอัตโนมัติ

การประเมินแบบอัตโนมัติเป็นรากฐานของ promptfoo คุณกำหนดกรณีทดสอบด้วยผลลัพธ์ที่คาดหวัง และเครื่องมือจะรันกับโมเดลที่คุณเลือก

ประเภทของการยืนยัน

Promptfoo มีประเภทการยืนยันในตัวกว่า 30+ รายการ:

การยืนยัน วัตถุประสงค์
contains ผลลัพธ์มีสตริงย่อย
equals การจับคู่สตริงที่แน่นอน
regex จับคู่กับรูปแบบ regex
json-schema ตรวจสอบโครงสร้าง JSON
javascript ฟังก์ชัน JS แบบกำหนดเองส่งคืนผ่าน/ไม่ผ่าน
python ฟังก์ชัน Python แบบกำหนดเอง
llm-rubric ใช้ LLM เพื่อให้คะแนนผลลัพธ์
similar คะแนนความคล้ายคลึงทางความหมาย
latency เวลาตอบสนองต่ำกว่าเกณฑ์
cost ต้นทุนต่อคำขอต่ำกว่าเกณฑ์

ตัวอย่างที่มีการยืนยันหลายรายการ:

tests:
  - vars:
      question: "What is the capital of France?"
    assert:
      - type: contains
        value: "Paris"
      - type: javascript
        value: output.length < 100
      - type: latency
        threshold: 2000
      - type: cost
        threshold: 0.001

การทดสอบนี้ตรวจสอบว่าคำตอบกล่าวถึงปารีส มีความยาวไม่เกิน 100 ตัวอักษร ตอบกลับภายใน 2 วินาที และมีค่าใช้จ่ายน้อยกว่า $0.001

การประเมินโดย LLM (LLM-Graded Evals)

การยืนยัน llm-rubric ใช้ LLM หนึ่งตัวในการให้คะแนนผลลัพธ์ของอีก LLM หนึ่ง ซึ่งมีประสิทธิภาพสำหรับเกณฑ์ที่ขึ้นอยู่กับดุลยพินิจ เช่น โทนเสียงหรือความเป็นประโยชน์:

assert:
  - type: llm-rubric
    value: "Response should be helpful, harmless, and honest"

LLM ที่เป็นผู้ให้คะแนนจะอ่านผลลัพธ์และให้คะแนนตามเกณฑ์ของคุณ คุณสามารถใช้โมเดลที่ถูกกว่าสำหรับการให้คะแนนเพื่อลดค่าใช้จ่าย

2. Red Teaming และการทดสอบความปลอดภัย

Promptfoo มีการทดสอบความปลอดภัยที่ครอบคลุมผ่านโมดูล red team โดยจะสร้างอินพุตที่เป็นอันตรายโดยอัตโนมัติเพื่อตรวจสอบช่องโหว่

เวกเตอร์การโจมตีที่รองรับ

ระบบ red team มีปลั๊กอินกว่า 67 รายการที่จัดหมวดหมู่ไว้:

หมวดหมู่ สิ่งที่ทดสอบ
Prompt Injection การโจมตีแบบ direct, indirect และ context injection
Jailbreaks การโจมตีแบบ DAN, การเปลี่ยน persona, การหลีกเลี่ยง role-play
Data Exfiltration SSRF, การดึงระบบพรอมต์, การรั่วไหลของพรอมต์
Harmful Content คำพูดแสดงความเกลียดชัง, กิจกรรมอันตราย, คำขอทำร้ายตนเอง
Compliance การรั่วไหลของ PII, การละเมิด HIPAA, การเปิดเผยข้อมูลทางการเงิน
Audio/Visual การโจมตีแบบ Audio injection และการโจมตีด้วยภาพ

การรันการสแกน Red Team

เริ่มต้นการกำหนดค่า red team:

promptfoo redteam init

รันการสแกนความปลอดภัย:

promptfoo redteam run

ดูรายงาน:

promptfoo redteam report [directory]

คำสั่ง redteam run จะดำเนินการสองขั้นตอน:

  1. สร้างการทดสอบการโจมตีแบบไดนามิกที่ปรับแต่งให้เข้ากับแอปพลิเคชันของคุณ
  2. ประเมินการทดสอบกับเป้าหมายของคุณและให้คะแนนช่องโหว่

ผลลัพธ์รวมถึงระดับความรุนแรง (วิกฤติ, สูง, ปานกลาง, ต่ำ), กรณีทดสอบที่สามารถถูกโจมตีได้ และคำแนะนำในการแก้ไข

ตัวอย่างผลลัพธ์ Red Team

Vulnerability Summary:
- Critical: 2 (PII leakage, prompt extraction)
- High: 5 (jailbreaks, injection attacks)
- Medium: 12 (bias, inconsistent responses)
- Low: 23 (minor policy violations)

แก้ไขปัญหาสำคัญก่อนการปรับใช้งาน รันการสแกนอีกครั้งหลังจากการเปลี่ยนแปลงเพื่อตรวจสอบการแก้ไข

3. การสแกนโค้ดสำหรับ Pull Requests

Promptfoo ผสานรวมกับ GitHub Actions เพื่อสแกน pull requests สำหรับปัญหาด้านความปลอดภัยที่เกี่ยวข้องกับ LLM

# .github/workflows/promptfoo-scan.yml
name: Promptfoo Code Scan
on: [pull_request]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: promptfoo/promptfoo/code-scan-action@main
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}

สิ่งนี้ช่วยจับ:

4. การเปรียบเทียบโมเดล

เปรียบเทียบผลลัพธ์จากหลายโมเดลแบบเคียงข้างกันเพื่อเลือกโมเดลที่ดีที่สุดสำหรับกรณีการใช้งานของคุณ

# รันการประเมินด้วยผู้ให้บริการหลายราย
promptfoo eval

# ดูการเปรียบเทียบใน UI บนเว็บ
promptfoo view

UI บนเว็บแสดง:

วิธีการที่ขับเคลื่อนด้วยข้อมูลนี้ช่วยป้องกันอคติต่อโมเดลที่คุ้นเคย คุณอาจพบว่าโมเดลที่ถูกกว่ามีประสิทธิภาพดีกว่า GPT-4 ในการประเมินเฉพาะของคุณ

ผู้ให้บริการที่รองรับ: การผสานรวม LLM กว่า 90 รายการ

Promptfoo รองรับผู้ให้บริการ LLM กว่า 90 รายการทันที คุณสามารถทดสอบพรอมต์เดียวกันใน OpenAI, Anthropic, Google, Amazon และโมเดลในเครื่องโดยไม่ต้องเปลี่ยนโค้ดของคุณ

ผู้ให้บริการหลัก

ผู้ให้บริการ โมเดล
OpenAI GPT-4, GPT-4o, GPT-4o-mini, o1, o3
Anthropic Claude 3.5/3.7/4.5/4.6, Thinking models
Google Gemini 1.5/2.0, Vertex AI
Microsoft Azure OpenAI, Phi
Amazon Bedrock (Claude, Llama, Titan)
Meta Llama 3, 3.1, 3.2 (ผ่านผู้ให้บริการหลายราย)
Ollama โมเดลในเครื่อง (Llama, Mistral, Phi)

ผู้ให้บริการแบบกำหนดเอง

คุณสามารถเขียนผู้ให้บริการแบบกำหนดเองใน Python หรือ JavaScript ได้หากโมเดลของคุณไม่ได้รับการสนับสนุน

ตัวอย่าง Python:

# custom_provider.py
from typing import Any

class CustomProvider:
    async def call_api(self, prompt: str, options: dict, context: dict) -> dict:
        response = await my_async_api.generate(prompt)
        return {
            "output": response.text,
            "tokenUsage": {
                "total": response.usage.total_tokens,
                "prompt": response.usage.prompt_tokens,
                "completion": response.usage.completion_tokens
            }
        }

ตัวอย่าง JavaScript:

// customProvider.js
export default class CustomProvider {
  async callApi(prompt) {
    return {
      output: await myApi.generate(prompt),
      tokenUsage: { total: 50, prompt: 20, completion: 30 }
    };
  }
}

ลงทะเบียนผู้ให้บริการแบบกำหนดเองในการกำหนดค่าของคุณ:

providers:
  - id: file://custom_provider.py
    config:
      api_key: ${MY_API_KEY}

อินเทอร์เฟซบรรทัดคำสั่ง: คำสั่งที่จำเป็น

CLI ของ Promptfoo มีฟังก์ชันทั้งหมดที่คุณต้องการสำหรับการทำงานประจำวัน

คำสั่งหลัก

# รันการประเมิน
promptfoo eval -c promptfooconfig.yaml

# เปิด UI บนเว็บ
promptfoo view

# แชร์ผลลัพธ์ออนไลน์
promptfoo share

# การทดสอบ Red team
promptfoo redteam init
promptfoo redteam run

# การกำหนดค่า
promptfoo init
promptfoo validate [config]

# การจัดการผลลัพธ์
promptfoo list
promptfoo show <id>
promptfoo delete <id>
promptfoo export <id>

# ยูทิลิตี้
promptfoo cache clear
promptfoo retry <id>

แฟล็กที่มีประโยชน์

--no-cache              # ปิดการใช้งานแคชสำหรับผลลัพธ์ใหม่
--max-concurrency <n>   # จำกัดการเรียก API แบบขนาน
--output <file>         # เขียนผลลัพธ์ไปยังไฟล์ JSON
--verbose               # เปิดใช้งานการบันทึกการดีบัก
--env-file <path>       # โหลดตัวแปรสภาพแวดล้อมจากไฟล์
--filter <pattern>      # รันกรณีทดสอบเฉพาะ

ตัวอย่าง: รันการประเมินด้วยการตั้งค่าที่กำหนดเอง

promptfoo eval \
  -c promptfooconfig.yaml \
  --no-cache \
  --max-concurrency 3 \
  --output results.json \
  --env-file .env

สิ่งนี้จะรันการประเมินใหม่ (ไม่มีแคช) จำกัดการทำงานพร้อมกันไว้ที่ 3 การเรียกแบบขนาน บันทึกผลลัพธ์เป็น JSON และโหลดคีย์ API จาก .env

การผสานรวม CI/CD: ทำให้การทดสอบ LLM เป็นอัตโนมัติ

ผสานรวม promptfoo เข้ากับไปป์ไลน์ CI/CD ของคุณเพื่อตรวจจับข้อผิดพลาดก่อนการปรับใช้งาน

ตัวอย่าง GitHub Actions

name: LLM Tests
on: [push, pull_request]
jobs:
  eval:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '22'
      - run: npm install -g promptfoo
      - run: promptfoo eval -c promptfooconfig.yaml
        env:
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}

Quality Gates

กำหนดเกณฑ์ผ่าน/ไม่ผ่านในการกำหนดค่าของคุณ:

commandLineOptions:
  threshold: 0.8  # กำหนดอัตราการผ่าน 80%

สิ่งนี้จะทำให้ CI ล้มเหลวหากการประเมินไม่เป็นไปตามเกณฑ์ ป้องกันข้อผิดพลาดจากการรวมเข้าด้วยกัน

การแคชใน CI

เปิดใช้งานการแคชเพื่อเร่งความเร็วในการรัน CI:

- uses: actions/cache@v4
  with:
    path: ~/.cache/promptfoo
    key: ${{ runner.os }}-promptfoo-${{ hashFiles('promptfooconfig.yaml') }}

ผลลัพธ์ที่แคชไว้จะข้ามการเรียก API สำหรับการทดสอบที่ไม่มีการเปลี่ยนแปลง ลดเวลาและค่าใช้จ่ายของ CI

Web UI: แสดงผลและแบ่งปันผลลัพธ์

Web UI ในตัว (promptfoo view) มีอินเทอร์เฟซแบบโต้ตอบสำหรับการตรวจสอบการประเมิน

คุณสมบัติ

การเข้าถึงและความปลอดภัย

UI ทำงานบน localhost:3000 เป็นค่าเริ่มต้น รวมถึงการป้องกัน CSRF โดยใช้เฮดเดอร์ Sec-Fetch-Site และ Origin เพื่อบล็อกคำขอข้ามไซต์จากต้นทางที่ไม่น่าเชื่อถือ

อย่าเปิดเผยเว็บเซิร์ฟเวอร์ในเครื่องไปยังเครือข่ายที่ไม่น่าเชื่อถือ สำหรับการเข้าถึงของทีม ให้ใช้คำสั่ง promptfoo share เพื่ออัปโหลดผลลัพธ์ไปยังคลาวด์ หรือโฮสต์ด้วยตนเองพร้อมการรับรองความถูกต้อง

ฐานข้อมูลและการแคช

ตำแหน่งแคช

แคชจะจัดเก็บผลลัพธ์การประเมินเพื่อเร่งความเร็วในการรันซ้ำ ใช้ --no-cache ระหว่างการพัฒนาเพื่อให้แน่ใจว่าได้ผลลัพธ์ที่สดใหม่

ตำแหน่งฐานข้อมูล

ฐานข้อมูลจะจัดเก็บการรันการประเมินในอดีตสำหรับการเปรียบเทียบและการวิเคราะห์แนวโน้ม อย่าลบไฟล์นี้เว้นแต่คุณต้องการสูญเสียข้อมูลในอดีต

แบบจำลองความปลอดภัย: สิ่งที่คุณเชื่อถือได้

Promptfoo ทำงานบนโมเดล 'เชื่อถือตามการกำหนดค่า' (trust-by-configuration) การทำความเข้าใจสิ่งนี้จะช่วยป้องกันความประหลาดใจด้านความปลอดภัย

อินพุตที่เชื่อถือได้ (ถือว่าเป็นโค้ด)

อินพุตเหล่านี้จะถูกดำเนินการเป็นโค้ดและควรมาจากแหล่งที่เชื่อถือได้เท่านั้น:

อินพุตที่ไม่น่าเชื่อถือ (ข้อมูลเท่านั้น)

อินพุตเหล่านี้ถือเป็นข้อมูลและไม่ควรกระตุ้นการดำเนินการโค้ด:

คำแนะนำในการเพิ่มความปลอดภัย

สำหรับสภาพแวดล้อมที่มีความปลอดภัยสูง:

  1. รันภายในคอนเทนเนอร์หรือ VM ที่มีสิทธิ์น้อยที่สุด
  2. ใช้คีย์ API เฉพาะที่มีสิทธิ์น้อยที่สุด
  3. หลีกเลี่ยงการวางความลับในพรอมต์หรือไฟล์การกำหนดค่า
  4. จำกัดการส่งข้อมูลออกนอกเครือข่ายสำหรับโค้ดของบุคคลที่สาม
  5. อย่าเปิดเผยเว็บเซิร์ฟเวอร์ในเครื่องไปยังเครือข่ายที่ไม่น่าเชื่อถือ

ประสิทธิภาพ: เพิ่มประสิทธิภาพการประเมินของคุณ

เคล็ดลับในการเพิ่มประสิทธิภาพ

  1. ใช้การแคช - พฤติกรรมเริ่มต้นช่วยเร่งความเร็วในการรันซ้ำ
  2. ปรับการทำงานพร้อมกัน - --max-concurrency ปรับสมดุลระหว่างความเร็วกับข้อจำกัดอัตรา (rate limits)
  3. กรองการทดสอบ - ใช้ --filter เพื่อรันกรณีทดสอบเฉพาะระหว่างการพัฒนา
  4. ตัวอย่างชุดข้อมูล - ใช้ --repeat กับชุดย่อยสำหรับการวนซ้ำก่อนการรันเต็มรูปแบบ

การปรับขนาดสำหรับการประเมินขนาดใหญ่

สำหรับการประเมินขนาดใหญ่ที่มีกรณีทดสอบหลายพันรายการ:

ความยืดหยุ่น: สร้างคุณสมบัติแบบกำหนดเอง

การยืนยันแบบกำหนดเอง

เขียนการยืนยันแบบกำหนดเองสำหรับการตรวจสอบเฉพาะโดเมน:

// assertions/customCheck.js
export default function customCheck(output, context) {
  const pass = output.includes('expected');
  return {
    pass,
    score: pass ? 1 : 0,
    reason: pass ? 'Output matched' : 'Missing expected content'
  };
}

ใช้ในการกำหนดค่าของคุณ:

assert:
  - type: file://assertions/customCheck.js

MCP Server

Promptfoo มีเซิร์ฟเวอร์ Model Context Protocol (MCP) สำหรับการผสานรวมกับผู้ช่วย AI เช่น Claude Code:

promptfoo mcp

สิ่งนี้ช่วยให้ตัวแทน AI สามารถ:

กรณีการใช้งานจริง

แชทบอทสนับสนุนลูกค้า

บริษัท SaaS ใช้ promptfoo เพื่อทดสอบแชทบอทสนับสนุนก่อนการปรับใช้งานแต่ละครั้ง:

ผลลัพธ์: ลดปัญหาที่ลูกค้ารายงานลง 90% หลังจากนำการประเมินอัตโนมัติมาใช้

ไปป์ไลน์การสร้างเนื้อหา

ทีมการตลาดตรวจสอบเนื้อหาที่สร้างโดย AI สำหรับโทนเสียงของแบรนด์:

ผลลัพธ์: โทนเสียงของแบรนด์ที่สอดคล้องกันในเนื้อหาทั้งหมดด้วยต้นทุน API ที่ต่ำลง 40%

แอปพลิเคชันด้านการดูแลสุขภาพ

สตาร์ทอัพด้าน Healthtech มั่นใจในการปฏิบัติตามกฎระเบียบที่เข้มงวดด้วยการทดสอบอย่างเข้มงวด:

ผลลัพธ์: ผ่านการตรวจสอบ SOC 2 ด้วยการประเมิน promptfoo เป็นหลักฐาน

สรุป

Promptfoo นำการทดสอบที่เป็นระบบมาสู่แอปพลิเคชัน LLM แทนที่กระบวนการแบบแมนนวลที่ผิดพลาดได้ง่ายด้วยการประเมินอัตโนมัติที่ตรวจจับข้อผิดพลาด ปัญหาด้านความปลอดภัย และปัญหาด้านคุณภาพก่อนการปรับใช้งาน

ประเด็นสำคัญ:

อนาคตของการพัฒนา AI นั้นขับเคลื่อนด้วยข้อมูล ด้วย promptfoo คุณมีเครื่องมือในการสร้าง ทดสอบ และรักษาความปลอดภัยแอปพลิเคชัน LLM ในระดับใหญ่

button

หากคุณทำงานกับ API ด้วย ลองใช้ Apidog ควบคู่ไปกับ promptfoo Apidog จัดการการออกแบบ API, การทดสอบ และเอกสารประกอบ ในขณะที่ promptfoo มุ่งเน้นไปที่การประเมิน LLM เมื่อใช้ร่วมกันจะครอบคลุมการทดสอบแอปพลิเคชันที่ทันสมัยทั้งหมด

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

Promptfoo ใช้สำหรับอะไร?

Promptfoo ใช้สำหรับการทดสอบและประเมินแอปพลิเคชัน LLM มันรันการทดสอบอัตโนมัติกับพรอมต์ เปรียบเทียบผลลัพธ์ในโมเดลต่างๆ และดำเนินการประเมิน red-team ด้านความปลอดภัยเพื่อค้นหาช่องโหว่

Promptfoo ฟรีหรือไม่?

ใช่ Promptfoo เป็นโอเพนซอร์สและได้รับอนุญาตภายใต้ MIT License คุณสามารถใช้ได้ฟรีสำหรับโครงการส่วนตัวและเชิงพาณิชย์ คุณสมบัติคลาวด์และการสนับสนุนระดับองค์กรอาจต้องมีแผนชำระเงิน

ฉันจะติดตั้ง promptfoo ได้อย่างไร?

รัน npm install -g promptfoo เพื่อติดตั้งแบบทั่วโลก คุณยังสามารถใช้ npx promptfoo@latest โดยไม่ต้องติดตั้ง หรือติดตั้งผ่าน brew install promptfoo บน macOS หรือ pip install promptfoo สำหรับ Python

Promptfoo รองรับโมเดลใดบ้าง?

Promptfoo รองรับผู้ให้บริการ LLM กว่า 90 ราย รวมถึง OpenAI (GPT-4, GPT-4o, o1), Anthropic (Claude 3.5/4/4.5), Google (Gemini), Microsoft (Azure OpenAI), Amazon Bedrock และโมเดลในเครื่องผ่าน Ollama

ฉันจะรันการสแกน red team ได้อย่างไร?

รัน promptfoo redteam init เพื่อสร้างการกำหนดค่า จากนั้น promptfoo redteam run เพื่อดำเนินการสแกนความปลอดภัย ดูผลลัพธ์ด้วย promptfoo redteam report

ฉันสามารถใช้ promptfoo ใน CI/CD ได้หรือไม่?

ได้ ติดตั้ง promptfoo ในไปป์ไลน์ CI ของคุณและรัน promptfoo eval พร้อมไฟล์การกำหนดค่าของคุณ ตั้งค่า quality gates ด้วยตัวเลือก threshold เพื่อทำให้ CI ล้มเหลวหากการประเมินไม่เป็นไปตามอัตราการผ่าน

Promptfoo ส่งข้อมูลของฉันไปยังเซิร์ฟเวอร์ภายนอกหรือไม่?

ไม่ Promptfoo ทำงาน 100% ในเครื่องเป็นค่าเริ่มต้น ข้อมูลพรอมต์และข้อมูลการทดสอบของคุณจะไม่ออกจากเครื่องของคุณเว้นแต่คุณจะเลือกใช้คุณสมบัติคลาวด์โดยชัดแจ้ง ไฟล์แคชและฐานข้อมูลจะถูกจัดเก็บไว้ในเครื่อง

ฉันจะเปรียบเทียบโมเดลด้วย promptfoo ได้อย่างไร?

ระบุผู้ให้บริการหลายรายในไฟล์การกำหนดค่าของคุณ จากนั้นรัน promptfoo eval ดูการเปรียบเทียบใน Web UI ด้วย promptfoo view ซึ่งจะแสดงอัตราการผ่าน/ไม่ผ่าน ต้นทุน และเวลาแฝงสำหรับแต่ละโมเดล

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API