LLM 기능

·3분 읽기

원문: Koog Documentation — model-capabilities 이 글은 Koog 공식 문서의 model-capabilities 페이지를 한국어로 옮긴 번역본입니다. 문서 구조와 링크 의미를 유지하되, MkDocs 전용 UI 문법은 블로그에서 읽기 좋도록 정리했습니다.

Koog는 다양한 언어 모델(LLM) 작업을 위한 일련의 추상화 및 구현을 제공합니다. 공급자에 구애받지 않는 방식으로 LLM 공급자. 세트에는 다음 클래스가 포함됩니다.

  • LLMCapability: LLM이 지원할 수 있는 다음과 같은 다양한 기능을 정의하는 클래스 계층 구조입니다.

  • 반응 무작위성을 제어하기 위한 온도 조정

  • 외부 시스템 상호작용을 위한 도구 통합

  • 시각적 데이터를 처리하기 위한 비전 처리

  • 벡터 표현을 위한 임베딩 생성

  • 텍스트 생성 작업 완료

  • 구조화된 데이터에 대한 스키마 지원(단순 및 전체 변형이 포함된 JSON)

  • 탐색적 응답에 대한 추측

  • LLModel: 제공자, 고유 식별자 및 지원되는 특정 LLM을 나타내는 데이터 클래스입니다. 능력.

이는 다양한 LLM 제공업체와 통합된 방식으로 상호 작용하기 위한 기반 역할을 하여 애플리케이션이 작동할 수 있도록 합니다. 공급자별 세부 정보를 추상화하면서 다양한 모델을 사용합니다.

LLM 기능

LLM 기능은 대규모 언어 모델이 지원할 수 있는 특정 기능을 나타냅니다. 쿠그에서는 프레임워크에서 기능은 특정 모델이 수행할 수 있는 작업과 구성 방법을 정의하는 데 사용됩니다. 각 기능 LLMCapability 클래스의 하위 클래스 또는 데이터 개체로 표시됩니다.

응용 프로그램에서 사용할 LLM을 구성할 때 LLM이 지원하는 기능을 LLModel 인스턴스를 생성할 때 capabilities 목록입니다. 이를 통해 프레임워크가 모델과 적절하게 상호 작용할 수 있습니다. 그리고 그 기능을 적절하게 사용하세요.

핵심 역량

아래 목록에는 Koog 프레임워크의 모델에 사용할 수 있는 핵심 LLM 관련 기능이 포함되어 있습니다.

  • 추측(LLMCapability.Speculation): 모델이 다음을 사용하여 추측 또는 탐색 응답을 생성할 수 있습니다. 가능성의 정도가 다양합니다. 더 넓은 범위의 잠재력이 있는 창의적이거나 가상적인 시나리오에 유용합니다. 결과 바람직하다.

  • 온도 (LLMCapability.Temperature): 모델의 응답 무작위성 또는 창의성을 조정할 수 있습니다. 수준. 온도 값이 높을수록 더 다양한 출력이 생성되고, 값이 낮을수록 더 집중적이고 결정론적 반응.

  • 도구(LLMCapability.Tools): 외부 도구 사용 또는 통합에 대한 지원을 나타냅니다. 이 기능을 통해 모델은 특정 도구를 실행하거나 외부 시스템과 상호 작용합니다.

  • 도구 선택(LLMCapability.ToolChoice): LLM에서 도구 호출이 작동하는 방식을 구성합니다. 모델에 따라, 다음과 같이 구성할 수 있습니다.

  • 텍스트 생성 또는 도구 호출 중에서 자동으로 선택

  • 도구 호출만 생성하고 문자는 생성하지 않습니다.

  • 텍스트만 생성하고 도구 호출은 생성하지 않음

  • 정의된 도구 중 특정 도구를 강제 호출

  • 다중 선택(LLMCapability.MultipleChoices): 모델이 여러 개의 독립적인 응답 선택을 생성할 수 있습니다. 단일 프롬프트로.

미디어 처리 기능

다음 목록은 이미지나 오디오와 같은 미디어 콘텐츠를 처리하기 위한 기능 집합을 나타냅니다.

  • 비전(LLMCapability.Vision): 인사이트를 처리, 분석, 추론하는 비전 기반 역량 클래스 시각적 데이터에서 다음 유형의 시각적 데이터를 지원합니다.

  • 이미지 (LLMCapability.Vision.Image): 이미지 분석, 인식, 그리고 해석.

  • 비디오(LLMCapability.Vision.Video): 비디오 분석 및 이해를 포함하여 비디오 데이터를 처리합니다. 콘텐츠.

  • 오디오(LLMCapability.Audio): 녹음, 오디오 생성 또는 기타 오디오 관련 기능을 제공합니다. 오디오 기반 상호 작용.

  • 문서(LLMCapability.Document): 문서 기반 입력 및 출력을 처리하고 처리할 수 있습니다.

텍스트 처리 기능

다음 기능 목록은 텍스트 생성 및 처리 기능을 나타냅니다.

  • 임베딩(LLMCapability.Embed): 모델이 입력 텍스트에서 벡터 임베딩을 생성하여 유사성을 가능하게 합니다. 비교, 클러스터링 및 기타 벡터 기반 분석.

  • 완료(LLMCapability.Completion): 주어진 입력 컨텍스트를 기반으로 텍스트 또는 콘텐츠의 생성을 포함합니다. 문장 완성, 제안 생성, 입력 데이터에 맞는 콘텐츠 생성 등이 있습니다.

  • 프롬프트 캐싱(LLMCapability.PromptCaching): 잠재적으로 프롬프트에 대한 캐싱 기능을 지원합니다. 개선 반복되거나 유사한 쿼리에 대한 성능.

  • 조정(LLMCapability.Moderation): 모델이 텍스트에서 잠재적으로 유해한 콘텐츠를 분석하고 괴롭힘, 증오심 표현, 자해, 성적인 내용, 폭력 등 다양한 범주에 따라 분류합니다.

스키마 기능

아래 목록은 구조화된 데이터 처리와 관련된 기능을 나타냅니다.

  • 스키마(LLMCapability.Schema): 데이터 상호 작용과 관련된 구조화된 스키마 기능에 대한 클래스입니다. 특정 형식을 사용하여 인코딩합니다. 다음 형식에 대한 지원이 포함됩니다.
  • JSON(LLMCapability.Schema.JSON): 다양한 수준의 JSON 스키마 지원:
    • 기본(LLMCapability.Schema.JSON.Basic): 경량 또는 기본 JSON 처리 기능을 제공합니다.
    • 표준(LLMCapability.Schema.JSON.Standard): 복잡한 데이터에 대한 포괄적인 JSON 스키마 지원을 제공합니다. 구조.

모델(LLModel) 구성 만들기

보편적이고 공급자에 구애받지 않는 방식으로 모델을 정의하려면 LLModel의 인스턴스로 모델 구성을 생성하세요. 다음 매개변수를 사용하는 클래스:

이름 데이터 유형 필수의 기본 설명
provider LLM공급자 예 Google 또는 OpenAI와 같은 LLM 제공업체입니다. 이는 모델을 생성하거나 호스팅하는 회사 또는 조직을 식별합니다.
id 끈 예 LLM 인스턴스의 고유 식별자입니다. 이는 일반적으로 특정 모델 버전이나 이름을 나타냅니다. 예를 들어 gpt-4-turbo, claude-3-opus, llama-3-2입니다.
capabilities 목록 예 온도 조정, 도구 사용 또는 스키마 기반 작업과 같이 LLM에서 지원하는 기능 목록입니다. 이러한 기능은 모델이 수행할 수 있는 작업과 구성 방법을 정의합니다.
contextLength 긴 예 LLM의 컨텍스트 길이입니다. 이는 LLM이 처리할 수 있는 최대 토큰 수입니다.
maxOutputTokens 긴 아니요 null LLM 공급자가 생성할 수 있는 최대 토큰 수입니다.

예

이 섹션에서는 다양한 기능을 갖춘 LLModel 인스턴스를 생성하는 자세한 예를 제공합니다.

아래 코드는 핵심 기능을 갖춘 기본 LLM 구성을 나타냅니다.

코틀린

1val basicModel = LLModel(2    provider = LLMProvider.OpenAI,3    id = "gpt-4-turbo",4    capabilities = listOf(5        LLMCapability.Temperature,6        LLMCapability.Tools,7        LLMCapability.Schema.JSON.Standard8    ),9    contextLength = 128_00010)

자바

1LLModel basicModel = new LLModel(2    LLMProvider.OpenAI,3    "gpt-4-turbo",4    List.of(5        LLMCapability.Temperature.INSTANCE,6        LLMCapability.Tools.INSTANCE,7        LLMCapability.Schema.JSON.Standard.INSTANCE8    ),9    128_000L10);

아래 모델 구성은 비전 기능을 갖춘 다중 모드 LLM입니다.

코틀린

1val visionModel = LLModel(2    provider = LLMProvider.OpenAI,3    id = "gpt-4-vision",4    capabilities = listOf(5        LLMCapability.Temperature,6        LLMCapability.Vision.Image,7        LLMCapability.MultipleChoices8    ),9    contextLength = 1_047_576,10    maxOutputTokens = 32_76811)

자바

1LLModel visionModel = new LLModel(2    LLMProvider.OpenAI,3    "gpt-4-vision",4    List.of(5        LLMCapability.Temperature.INSTANCE,6        LLMCapability.Vision.Image.INSTANCE,7        LLMCapability.MultipleChoices.INSTANCE8    ),9    1_047_576L,10    32_768L11);

오디오 처리 기능을 갖춘 LLM:

코틀린

1val audioModel = LLModel(2    provider = LLMProvider.Anthropic,3    id = "claude-3-opus",4    capabilities = listOf(5        LLMCapability.Audio,6        LLMCapability.Temperature,7        LLMCapability.PromptCaching8    ),9    contextLength = 200_00010)

자바

1LLModel audioModel = new LLModel(2    LLMProvider.Anthropic,3    "claude-3-opus",4    List.of(5        LLMCapability.Audio.INSTANCE,6        LLMCapability.Temperature.INSTANCE,7        LLMCapability.PromptCaching.INSTANCE8    ),9    200_000L10);

모델을 LLModel 인스턴스로 생성하고 모든 관련 매개변수를 지정해야 하는 것 외에도 Koog에는 다음이 포함됩니다. 지원되는 기능을 갖춘 사전 정의된 모델 및 해당 구성의 모음입니다. 사전 정의된 Ollama 모델을 사용하려면 다음과 같이 지정하십시오.

코틀린

1val metaModel = OllamaModels.Meta.LLAMA_3_2

자바

1LLModel metaModel = OllamaModels.Meta.LLAMA_3_2;

모델이 특정 기능을 지원하는지 확인하려면 contains 메서드를 사용하여 capabilities 목록의 기능:

코틀린

1// Check if models support specific capabilities2val supportsTools = basicModel.supports(LLMCapability.Tools) // true3val supportsVideo = visionModel.supports(LLMCapability.Vision.Video) // false45// Check for schema capabilities6val jsonCapability = basicModel.capabilities?.filterIsInstance<LLMCapability.Schema.JSON>()?.firstOrNull()7val hasFullJsonSupport = jsonCapability is LLMCapability.Schema.JSON.Standard // true

자바

1// Check if models support specific capabilities2boolean supportsTools = basicModel.supports(LLMCapability.Tools.INSTANCE); // true3boolean supportsVideo = visionModel.supports(LLMCapability.Vision.Video.INSTANCE); // false45// Check for schema capabilities6LLMCapability jsonCapability = basicModel.getCapabilities().stream()7    .filter(c -> c instanceof LLMCapability.Schema.JSON)8    .map(c -> (LLMCapability.Schema.JSON) c)9    .findFirst()10    .orElse(null);11boolean hasFullJsonSupport = jsonCapability instanceof LLMCapability.Schema.JSON.Standard; // true

모델별 LLM 기능

이 참조 자료는 다양한 공급자의 각 모델에서 어떤 LLM 기능을 지원하는지 보여줍니다.

아래 표에서:

  • ✓은 모델이 기능을 지원함을 나타냅니다.
  • -은 모델이 해당 기능을 지원하지 않음을 나타냅니다.
  • JSON 스키마의 경우 Full 또는 Simple은 모델이 지원하는 JSON 스키마 기능의 변형을 나타냅니다.

참고: "Google models"

구글 모델

모델 온도 JSON 스키마 완성 다중 선택 도구 도구 선택 비전(이미지) 비전(영상) 오디오
Gemini2_5Pro ✓ 가득한 ✓ ✓ ✓ ✓ ✓ ✓ ✓
Gemini2_5플래시 ✓ 가득한 ✓ ✓ ✓ ✓ ✓ ✓ ✓
Gemini2_5FlashLite ✓ 가득한 ✓ ✓ ✓ ✓ ✓ ✓ ✓
Gemini2_0플래시 ✓ 가득한 ✓ ✓ ✓ ✓ ✓ ✓ ✓
Gemini2_0Flash001 ✓ 가득한 ✓ ✓ ✓ ✓ ✓ ✓ ✓
Gemini2_0FlashLite ✓ 가득한 ✓ ✓ ✓ ✓ ✓ ✓ ✓
Gemini2_0FlashLite001 ✓ 가득한 ✓ ✓ ✓ ✓ ✓ ✓ ✓

참고: "OpenAI models"

OpenAI 모델

모델 온도 JSON 스키마 완성 다중 선택 도구 도구 선택 비전(이미지) 비전(영상) 오디오 추측 절도
추론.O4Mini - 가득한 ✓ ✓ ✓ ✓ ✓ - - ✓ -
추론.O3Mini - 가득한 ✓ ✓ ✓ ✓ - - - ✓ -
추론.O3 - 가득한 ✓ ✓ ✓ ✓ ✓ - - ✓ -
추론.O1 - 가득한 ✓ ✓ ✓ ✓ ✓ - - ✓ -
채팅.GPT4o ✓ 가득한 ✓ ✓ ✓ ✓ ✓ - - ✓ -
채팅.GPT4_1 ✓ 가득한 ✓ ✓ ✓ ✓ ✓ - - ✓ -
채팅.GPT5 ✓ 가득한 ✓ ✓ ✓ ✓ ✓ - - ✓ -
채팅.GPT5Mini ✓ 가득한 ✓ ✓ ✓ ✓ ✓ - - ✓ -
Chat.GPT5Nano ✓ 가득한 ✓ ✓ ✓ ✓ ✓ - - ✓ -
오디오.GptAudio ✓ - ✓ - ✓ ✓ - - ✓ - -
오디오.GPT4oMiniAudio ✓ - ✓ - ✓ ✓ - - ✓ - -
오디오.GPT4oAudio ✓ - ✓ - ✓ ✓ - - ✓ - -
비용 최적화.GPT4_1Nano ✓ 가득한 ✓ ✓ ✓ ✓ ✓ - - ✓ -
비용 최적화.GPT4_1Mini ✓ 가득한 ✓ ✓ ✓ ✓ ✓ - - ✓ -
비용 최적화.GPT4oMini ✓ 가득한 ✓ ✓ ✓ ✓ ✓ - - ✓ -
조정.옴니 - - - - - - ✓ - - - ✓

참고: "Anthropic models"

인류 모델

모델 온도 JSON 스키마 완성 도구 도구 선택 비전(이미지)
Opus_4_6 ✓ 가득한 ✓ ✓ ✓ ✓
Opus_4_5 ✓ 가득한 ✓ ✓ ✓ ✓
Opus_4_1 ✓ - ✓ ✓ ✓ ✓
Opus_4 ✓ - ✓ ✓ ✓ ✓
소네트_4_6 ✓ 가득한 ✓ ✓ ✓ ✓
소네트_4_5 ✓ 가득한 ✓ ✓ ✓ ✓
소네트_4 ✓ - ✓ ✓ ✓ ✓
하이쿠_4_5 ✓ 가득한 ✓ ✓ ✓ ✓
하이쿠_3 ✓ - ✓ ✓ ✓ ✓

참고: "Ollama models"

올라마 모델

메타 모델
모델 온도 JSON 스키마 도구 절도
LLAMA_3_2_3B ✓ 단순한 ✓ -
LLAMA_3_2 ✓ 단순한 ✓ -
라마_4 ✓ 단순한 ✓ -
LLAMA_GUARD_3 - - - ✓
알리바바 모델
모델 온도 JSON 스키마 도구
QWEN_2_5_05B ✓ 단순한 ✓
QWEN_3_06B ✓ 단순한 ✓
QWQ ✓ 단순한 ✓
QWEN_CODER_2_5_32B ✓ 단순한 ✓
그로크 모델
모델 온도 JSON 스키마 도구
LLAMA_3_GROK_TOOL_USE_8B ✓ 가득한 ✓
LLAMA_3_GROK_TOOL_USE_70B ✓ 가득한 ✓
화강암 모델
모델 온도 JSON 스키마 도구 비전(이미지)
GRANITE_3_2_VISION ✓ 단순한 ✓ ✓

참고: "DeepSeek models"

DeepSeek 모델

모델 온도 JSON 스키마 완성 추측 도구 도구 선택 비전(이미지)
DeepSeekChat ✓ 가득한 ✓ - ✓ ✓ -
DeepSeekReasoner ✓ 가득한 ✓ - ✓ ✓ -

참고: "OpenRouter models"

OpenRouter 모델

모델 온도 JSON 스키마 완성 추측 도구 도구 선택 비전(이미지)
Phi4Reasoning ✓ 가득한 ✓ ✓ ✓ ✓ -
클로드3오푸스 ✓ 가득한 ✓ ✓ ✓ ✓ ✓
클로드3소네트 ✓ 가득한 ✓ ✓ ✓ ✓ ✓
Claude3하이쿠 ✓ 가득한 ✓ ✓ ✓ ✓ ✓
Claude3_5소네트 ✓ 가득한 ✓ ✓ ✓ ✓ ✓
Claude3_7소네트 ✓ 가득한 ✓ ✓ ✓ ✓ ✓
클로드4소네트 ✓ 가득한 ✓ ✓ ✓ ✓ ✓
클로드4_1오푸스 ✓ 가득한 ✓ ✓ ✓ ✓ ✓
GPT4oMini ✓ 가득한 ✓ ✓ ✓ ✓ ✓
GPT5 ✓ 가득한 ✓ ✓ ✓ ✓ -
GPT5Mini ✓ 가득한 ✓ ✓ ✓ ✓ -
GPT5나노 ✓ 가득한 ✓ ✓ ✓ ✓ -
GPT_OSS_120b ✓ 가득한 ✓ ✓ ✓ ✓ -
GPT4 ✓ 가득한 ✓ ✓ ✓ ✓ -
GPT4o ✓ 가득한 ✓ ✓ ✓ ✓ ✓
GPT4터보 ✓ 가득한 ✓ ✓ ✓ ✓ ✓
GPT35터보 ✓ 가득한 ✓ ✓ ✓ ✓ -
라마3 ✓ 가득한 ✓ ✓ ✓ ✓ -
Llama3명령 ✓ 가득한 ✓ ✓ ✓ ✓ -
미스트랄7B ✓ 가득한 ✓ ✓ ✓ ✓ -
믹스트랄8x7B ✓ 가득한 ✓ ✓ ✓ ✓ -
Claude3Vision소네트 ✓ 가득한 ✓ ✓ ✓ ✓ ✓
Claude3VisionOpus ✓ 가득한 ✓ ✓ ✓ ✓ ✓
Claude3Vision하이쿠 ✓ 가득한 ✓ ✓ ✓ ✓ ✓
DeepSeekV30324 ✓ 가득한 ✓ ✓ ✓ ✓ -
Gemini2_5FlashLite ✓ 가득한 ✓ ✓ ✓ ✓ ✓
Gemini2_5플래시 ✓ 가득한 ✓ ✓ ✓ ✓ ✓
Gemini2_5Pro ✓ 가득한 ✓ ✓ ✓ ✓ ✓