LiteLLM AI Gateway 프롬프트 관리

LiteLLM AI Gateway 프롬프트 관리

LiteLLM AI Gateway를 사용하면 프롬프트를 만들고, 관리하고, 버전을 관리할 수 있어요. 대시보드의 직관적인 UI로 프롬프트를 설계하고 테스트한 뒤, LiteLLM Proxy API를 통해 애플리케이션에서 바로 호출할 수 있어요.

프롬프트에는 변수, 커스텀 메시지, developer message(시스템 지시)를 넣을 수 있고, 업데이트할 때마다 자동으로 버전이 관리되어 이전 버전으로 쉽게 되돌릴 수 있어요.

출처: 문서

본문

LiteLLM AI Gateway로 프롬프트를 만들고, 관리하고, 버전을 관리하세요.

빠른 시작 (Quick Start)

프롬프트 인터페이스 접근하기

  1. LiteLLM 대시보드에서 Experimental > Prompts로 이동하세요.
  2. 모든 기존 프롬프트를 보여주는 표가 나타나며, 컬럼은 다음과 같아요:
    • Prompt ID : 각 프롬프트의 고유 식별자
    • Model : 프롬프트에 설정된 LLM 모델
    • Created At : 프롬프트가 생성된 시각
    • Updated At : 마지막 수정 시각
    • Type : 프롬프트 유형 (예: db)
    • Actions : 프롬프트 삭제·관리 옵션 (admin 전용)

Prompt Table

프롬프트 만들기 (Create a Prompt)

+ Add New Prompt 버튼을 클릭해 새 프롬프트를 만들 수 있어요.

1단계: 모델 선택하기

상단의 드롭다운 메뉴에서 사용할 LLM 모델을 선택하세요. 설정된 어떤 모델이든 선택할 수 있어요 (예: aws/anthropic/bedrock-claude-sonnet-5, gpt-5.6-terra 등).

2단계: Developer Message 설정하기

Developer message 섹션에서 모델에 대한 선택적 시스템 지시를 설정할 수 있어요. 이 값은 모델의 동작을 안내하는 시스템 프롬프트 역할을 해요.

예를 들어:

    Respond as jack sparrow would

이렇게 하면 모델이 캐리비안의 해적에 나오는 잭 스패로우 선장 스타일로 응답하도록 지시해요.

Add Prompt with Developer Message

3단계: 프롬프트 메시지 추가하기

Prompt messages 섹션에서 실제 프롬프트 내용을 추가할 수 있어요. + Add message를 클릭하면 프롬프트 템플릿에 메시지를 더 추가할 수 있어요.

4단계: 프롬프트에서 변수 사용하기

변수를 사용하면 런타임에 커스터마이즈할 수 있는 동적 프롬프트를 만들 수 있어요. {{variable_name}} 문법으로 프롬프트에 변수를 넣어요.

예를 들어:

    Give me a recipe for {{dish}}

UI가 프롬프트의 변수를 자동으로 감지해 Detected variables 섹션에 표시해요.

Add Prompt with Variables

5단계: 프롬프트 테스트하기

저장하기 전에 UI에서 바로 프롬프트를 테스트할 수 있어요:

  1. 오른쪽 패널에서 템플릿 변수를 채워 넣어요 (예: dishcookies로 설정)
  2. 채팅 인터페이스에 메시지를 입력해 프롬프트를 테스트해요
  3. 어시스턴트가 설정된 모델, developer message, 치환된 변수를 사용해 응답해요

Test Prompt with Variables

변수가 치환된 모델의 응답이 결과로 표시돼요:

Prompt Test Results

6단계: 프롬프트 저장하기

프롬프트가 만족스러우면 우측 상단의 Save 버튼을 클릭해 프롬프트 라이브러리에 저장하세요.

프롬프트 사용하기 (Using Your Prompts)

프롬프트가 게시되면 LiteLLM Proxy API를 통해 애플리케이션에서 사용할 수 있어요. UI의 Get Code 버튼을 클릭하면 프롬프트에 맞게 커스터마이즈된 코드 스니펫을 볼 수 있어요.

기본 사용법 (Basic Usage)

프롬프트 ID와 모델만으로 프롬프트를 호출해요:

  • cURL
  • Python
  • JavaScript

기본 프롬프트 호출:

    curl -X POST 'http://localhost:4000/chat/completions' \
      -H 'Content-Type: application/json' \
      -H "Authorization: Bearer ***" \
      -d '{
        "model": "gpt-5.6-terra",
        "prompt_id": "your-prompt-id"
      }' | jq
    import openai

    client = openai.OpenAI(
        api_key="sk-<your-litellm-api-key>",
        base_url="http://localhost:4000"
    )

    response = client.chat.completions.create(
        model="gpt-5.6-terra",
        extra_body={
            "prompt_id": "your-prompt-id"
        }
    )

    print(response)
    import OpenAI from 'openai';

    const client = new OpenAI({
        apiKey: "sk-<y...y>",
        baseURL: "http://localhost:4000"
    });

    async function main() {
        const response = await client.chat.completions.create({
            model: "gpt-5.6-terra",
            prompt_id: "your-prompt-id"
        });

        console.log(response);
    }

    main();

커스텀 메시지 사용하기

프롬프트에 커스텀 메시지를 추가해요:

  • cURL
  • Python
  • JavaScript

커스텀 메시지가 있는 프롬프트:

    curl -X POST 'http://localhost:4000/chat/completions' \
      -H 'Content-Type: application/json' \
      -H "Authorization: Bearer ***" \
      -d '{
        "model": "gpt-5.6-terra",
        "prompt_id": "your-prompt-id",
        "messages": [
          {
            "role": "user",
            "content": "hi"
          }
        ]
      }' | jq
    import openai

    client = openai.OpenAI(
        api_key="sk-<your-litellm-api-key>",
        base_url="http://localhost:4000"
    )

    response = client.chat.completions.create(
        model="gpt-5.6-terra",
        messages=[
            {"role": "user", "content": "hi"}
        ],
        extra_body={
            "prompt_id": "your-prompt-id"
        }
    )

    print(response)
    import OpenAI from 'openai';

    const client = new OpenAI({
        apiKey: "sk-<y...y>",
        baseURL: "http://localhost:4000"
    });

    async function main() {
        const response = await client.chat.completions.create({
            model: "gpt-5.6-terra",
            messages: [
                { role: "user", content: "hi" }
            ],
            prompt_id: "your-prompt-id"
        });

        console.log(response);
    }

    main();

프롬프트 변수 사용하기

prompt_variables로 프롬프트 템플릿에 변수를 전달해요:

  • cURL
  • Python
  • JavaScript

변수가 있는 프롬프트:

    curl -X POST 'http://localhost:4000/chat/completions' \
      -H 'Content-Type: application/json' \
      -H "Authorization: Bearer ***" \
      -d '{
        "model": "gpt-5.6-terra",
        "prompt_id": "your-prompt-id",
        "prompt_variables": {
          "dish": "cookies"
        }
      }' | jq
    import openai

    client = openai.OpenAI(
        api_key="sk-<your-litellm-api-key>",
        base_url="http://localhost:4000"
    )

    response = client.chat.completions.create(
        model="gpt-5.6-terra",
        extra_body={
            "prompt_id": "your-prompt-id",
            "prompt_variables": {
                "dish": "cookies"
            }
        }
    )

    print(response)
    import OpenAI from 'openai';

    const client = new OpenAI({
        apiKey: "sk-<y...y>",
        baseURL: "http://localhost:4000"
    });

    async function main() {
        const response = await client.chat.completions.create({
            model: "gpt-5.6-terra",
            prompt_id: "your-prompt-id",
            prompt_variables: {
                "dish": "cookies"
            }
        });

        console.log(response);
    }

    main();

프롬프트 버전 관리 (Prompt Versioning)

LiteLLM은 프롬프트를 업데이트할 때마다 자동으로 버전을 관리해요. 이를 통해 변경 이력을 완전히 유지하고, 필요할 때 이전 버전으로 되돌릴 수 있어요.

프롬프트 상세 보기

프롬프트 표에서 아무 프롬프트 ID를 클릭해 상세 페이지를 볼 수 있어요. 이 페이지에는 다음이 표시돼요:

  • Prompt ID : 프롬프트의 고유 식별자
  • Version : 현재 버전 번호 (예: v4)
  • Prompt Type : 스토리지 유형 (예: db)
  • Created At : 프롬프트가 처음 생성된 시각
  • Last Updated : 가장 최근 수정 시각
  • LiteLLM Parameters : 원본 JSON 설정

Prompt Details

프롬프트 업데이트하기

기존 프롬프트를 업데이트하려면:

  1. 프롬프트 표에서 업데이트할 프롬프트를 클릭해요
  2. 우측 상단의 Prompt Studio 버튼을 클릭해요
  3. 다음을 수정해요:
    • 모델 선택
    • Developer message (시스템 지시)
    • 프롬프트 메시지
    • 변수
  4. 오른쪽 채팅 인터페이스에서 변경 사항을 테스트해요
  5. Update 버튼을 클릭해 새 버전을 저장해요

Edit Prompt in Studio

Update를 클릭할 때마다 새 버전이 생성돼요 (v1 → v2 → v3 등). 같은 Prompt ID는 유지돼요.

버전 이력 보기

프롬프트의 모든 버전을 보려면:

  1. Prompt Studio에서 프롬프트를 열어요
  2. 우측 상단의 History 버튼을 클릭해요
  3. 오른쪽에 Version History 패널이 열려요

Version History Panel

버전 이력 패널에는 다음이 표시돼요:

  • 최신 버전 ("Latest" 배지와 "Active" 상태가 표시됨)
  • 이전 버전들 (v4, v3, v2, v1 등)
  • 각 버전의 타임스탬프
  • 데이터베이스 저장 상태 ("Saved to Database")

이전 버전 보기·복원하기

이전 버전을 보거나 복원하려면:

  1. Version History 패널에서 이전 버전(예: v2)을 클릭해요
  2. 프롬프트 스튜디오에 해당 버전의 설정이 로드돼요
  3. 다음을 볼 수 있어요:
    • 그 버전의 developer message
    • 그 버전의 프롬프트 메시지
    • 사용된 모델과 파라미터
    • 그 시점에 정의된 모든 변수

View Older Version

선택된 버전은 버전 이력 패널에서 "Active" 배지로 강조 표시돼요.

이전 버전을 복원하려면:

  1. 복원하려는 이전 버전을 열어요
  2. Update 버튼을 클릭해요
  3. 이전 버전의 내용으로 새 버전이 만들어져요

API 호출에서 특정 버전 사용하기

기본적으로 API 호출은 프롬프트의 최신 버전을 사용해요. 특정 버전을 쓰려면 prompt_version 파라미터를 전달하세요:

  • cURL
  • Python
  • JavaScript

특정 프롬프트 버전 사용하기:

    curl -X POST 'http://localhost:4000/chat/completions' \
      -H 'Content-Type: application/json' \
      -H "Authorization: Bearer ***" \
      -d '{
        "model": "gpt-5.6-terra",
        "prompt_id": "jack-sparrow",
        "prompt_version": 2,
        "messages": [
          {
            "role": "user",
            "content": "Who are u"
          }
        ]
      }' | jq
    import openai

    client = openai.OpenAI(
        api_key="sk-<your-litellm-api-key>",
        base_url="http://localhost:4000"
    )

    response = client.chat.completions.create(
        model="gpt-5.6-terra",
        messages=[
            {"role": "user", "content": "Who are u"}
        ],
        extra_body={
            "prompt_id": "jack-sparrow",
            "prompt_version": 2
        }
    )

    print(response)
    import OpenAI from 'openai';

    const client = new OpenAI({
        apiKey: "sk-<y...y>",
        baseURL: "http://localhost:4000"
    });

    async function main() {
        const response = await client.chat.completions.create({
            model: "gpt-5.6-terra",
            messages: [
                { role: "user", content: "Who are u" }
            ],
            prompt_id: "jack-sparrow",
            prompt_version: 2
        });

        console.log(response);
    }

    main();

더 알아보기 (Learn more)

  • LiteLLM AI Gateway의 전반적인 기능 살펴보기
  • 프롬프트 관리에서 DB 기반 프롬프트 관리 알아보기