Lemonade

Lemonade

Lemonade Server는 AMD GPU와 NPU에 최적화된 OpenAI 호환 로컬 언어 모델 추론 공급자예요. lemonade litellm provider는 완전한 OpenAI API 호환성을 갖춘 표준 chat completions를 지원해요.

출처: 문서

본문

개요 (Overview)

속성 설명
설명 로컬 및 클라우드 기반 언어 모델 추론용 OpenAI 호환 AI 공급자
LiteLLM 라우트 lemonade/ (모델 이름에 이 접두사를 추가 — 예: lemonade/your-model-name)
Provider API 엔드포인트 http://localhost:8000/api/v1 (기본)
지원 엔드포인트 /chat/completions

지원되는 OpenAI 파라미터

Lemonade는 완전히 OpenAI 호환이며 다음 파라미터를 지원해요: repeat_penalty, functions, logit_bias, max_tokens, max_completion_tokens, presence_penalty, stop, temperature, top_p, top_k, response_format, tools

API 키 설정 (API Key Setup)

Lemonade는 사용자 지정 API URL로 구성할 수 있고 엄격한 API 키 검증을 요구하지 않아요. LEMONADE_API_BASE 환경 변수를 설정해 base URL을 수정할 수 있어요.

사용법 (Usage)

SDK

from litellm import completion
import os

# Optional: Set custom API base. Useful if your lemonade server is on
# a different port
os.environ['LEMONADE_API_BASE'] = "http://localhost:8000/api/v1"

response = completion(
    model="lemonade/your-model-name",
    messages=[
        {"role": "user", "content": "Hello from LiteLLM!"}
    ],
)
print(response)

스트리밍 (Streaming)

from litellm import completion
import os

# Optional: Set custom API base. Useful if your lemonade server is on
# a different port
os.environ['LEMONADE_API_BASE'] = "http://localhost:8000/api/v1"

response = completion(
    model="lemonade/your-model-name",
    messages=[
        {"role": "user", "content": "Write a short story"}
    ],
    stream=True
)

for chunk in response:
    print(chunk.choices[0].delta.content, end='', flush=True)

고급 사용법 (Advanced Usage)

사용자 지정 파라미터

Lemonade는 표준 OpenAI 세트를 넘어 추가 파라미터를 지원해요.

from litellm import completion

response = completion(
    model="lemonade/your-model-name",
    messages=[{"role": "user", "content": "Explain quantum computing"}],
    temperature=0.7,
    max_tokens=500,
    top_p=0.9,
    top_k=50,
    repeat_penalty=1.1,
    stop=["Human:", "AI:"]
)
print(response)

Function Calling

Lemonade는 OpenAI 호환 function calling을 지원해요.

from litellm import completion

functions = [
    {
        "name": "get_weather",
        "description": "Get current weather information",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {
                    "type": "string",
                    "description": "The city and state"
                }
            },
            "required": ["location"]
        }
    }
]

response = completion(
    model="lemonade/your-model-name",
    messages=[{"role": "user", "content": "What's the weather in San Francisco?"}],
    tools=[{"type": "function", "function": f} for f in functions],
    tool_choice="auto"
)
print(response)

응답 형식 (Response Format)

Lemonade는 response format으로 구조화 출력을 지원해요.

from litellm import completion
import json

# Define schema in response_format
response = completion(
    model="lemonade/Qwen3-Coder-30B-A3B-Instruct-GGUF",
    messages=[{"role": "user", "content": "Generate JSON data for a person with their name, age, and city."}],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "person",
            "schema": {
                "type": "object",
                "properties": {
                    "name": {"type": "string"},
                    "age": {"type": "integer"},
                    "city": {"type": "string"}
                },
                "required": ["name", "age"]
            }
        }
    }
)
print(f"Model: {response.model}")
print(f"JSON Output:")
json_data = json.loads(response.choices[0].message.content)
print(json.dumps(json_data, indent=2))

사용 가능한 모델 (Available Models)

Lemonade는 /models 엔드포인트를 쿼리해 사용 가능한 모델을 자동 검증해요.

import httpx

api_base = "http://localhost:8000"  # or your custom base
response = httpx.get(f"{api_base}/api/v1/models")
models = response.json()
print("Available models:", [model['id'] for model in models.get('data', [])])

더 알아보기 (Learn more)