중요합니다
- Foundry Local은 미리 보기로 제공됩니다. 공개 미리 보기 릴리스에서는 현재 적극적으로 배포되고 있는 기능에 대한 조기 액세스를 제공합니다.
- GA(일반 공급) 전에는 기능, 방식 및 프로세스가 변경되거나 기능이 제한될 수 있습니다.
Foundry Local SDK는 데이터 평면 추론 코드와는 별도로 컨트롤 플레인 작업을 제공하여 로컬 환경에서 AI 모델 관리를 간소화합니다. 이 참조는 Python, JavaScript, C# 및 Rust에 대한 SDK 구현을 설명합니다.
Python SDK 참조
설치
Python 패키지를 설치합니다.
pip install foundry-local-sdk
FoundryLocalManager 클래스
클래스는 FoundryLocalManager
모델, 캐시 및 Foundry 로컬 서비스를 관리하는 메서드를 제공합니다.
초기화
from foundry_local import FoundryLocalManager
# Initialize and optionally bootstrap with a model
manager = FoundryLocalManager(alias_or_model_id=None, bootstrap=True)
alias_or_model_id
: (선택 사항) 시작 시 다운로드 및 로드할 별칭 또는 모델 ID입니다.bootstrap
: (기본 True) True이면 실행되지 않는 경우 서비스를 시작하고 제공된 경우 모델을 로드합니다.
별칭에 대한 메모
이 참조에 설명된 많은 메서드에는 서명에 alias_or_model_id
매개 변수가 있습니다. 메서드에 별칭 또는 모델 ID를 값으로 전달할 수 있습니다. 별칭을 사용하면 다음이 수행됩니다.
- 사용 가능한 하드웨어에 가장 적합한 모델을 선택합니다. 예를 들어 Nvidia CUDA GPU를 사용할 수 있는 경우 Foundry Local은 CUDA 모델을 선택합니다. 지원되는 NPU를 사용할 수 있는 경우 Foundry Local은 NPU 모델을 선택합니다.
- 모델 ID를 기억할 필요 없이 더 짧은 이름을 사용할 수 있습니다.
팁 (조언)
애플리케이션을 alias_or_model_id
배포할 때 Foundry Local은 런타임에 최종 사용자의 컴퓨터에 가장 적합한 모델을 획득하므로 매개 변수에 별칭 을 전달하는 것이 좋습니다.
서비스 관리
메서드 | 서명 | 설명 |
---|---|---|
is_service_running() |
() -> bool |
Foundry 로컬 서비스가 실행 중인지 확인합니다. |
start_service() |
() -> None |
Foundry 로컬 서비스를 시작합니다. |
service_uri |
@property -> str |
서비스 URI를 반환합니다. |
endpoint |
@property -> str |
서비스 엔드포인트를 반환합니다. |
api_key |
@property -> str |
API 키를 반환합니다(env 또는 기본값에서). |
카탈로그 관리
메서드 | 서명 | 설명 |
---|---|---|
list_catalog_models() |
() -> list[FoundryModelInfo] |
카탈로그에서 사용 가능한 모든 모델을 나열합니다. |
refresh_catalog() |
() -> None |
모델 카탈로그를 새로 고칩니다. |
get_model_info() |
(alias_or_model_id: str, raise_on_not_found=False) -> FoundryModelInfo or None |
별칭 또는 ID로 모델 정보를 가져옵니다. |
캐시 관리
메서드 | 서명 | 설명 |
---|---|---|
get_cache_location() |
() -> str |
모델 캐시 디렉터리 경로를 반환합니다. |
list_cached_models() |
() -> list[FoundryModelInfo] |
로컬 캐시에 다운로드된 모델을 나열합니다. |
모델 관리
메서드 | 서명 | 설명 |
---|---|---|
download_model() |
(alias_or_model_id: str, token: str = None, force: bool = False) -> FoundryModelInfo |
로컬 캐시에 모델을 다운로드합니다. |
load_model() |
(alias_or_model_id: str, ttl: int = 600) -> FoundryModelInfo |
모델을 유추 서버에 로드합니다. |
unload_model() |
(alias_or_model_id: str, force: bool = False) -> None |
유추 서버에서 모델을 언로드합니다. |
list_loaded_models() |
() -> list[FoundryModelInfo] |
현재 서비스에 로드된 모든 모델을 나열합니다. |
사용 예시
다음 코드에서는 클래스를 사용하여 FoundryManager
모델을 관리하고 Foundry 로컬 서비스와 상호 작용하는 방법을 보여 줍니다.
from foundry_local import FoundryLocalManager
# By using an alias, the most suitable model will be selected
# to your end-user's device.
alias = "phi-3.5-mini"
# Create a FoundryLocalManager instance. This will start the Foundry.
manager = FoundryLocalManager()
# List available models in the catalog
catalog = manager.list_catalog_models()
print(f"Available models in the catalog: {catalog}")
# Download and load a model
model_info = manager.download_model(alias)
model_info = manager.load_model(alias)
print(f"Model info: {model_info}")
# List models in cache
local_models = manager.list_cached_models()
print(f"Models in cache: {local_models}")
# List loaded models
loaded = manager.list_loaded_models()
print(f"Models running in the service: {loaded}")
# Unload a model
manager.unload_model(alias)
OpenAI SDK와 통합
OpenAI 패키지를 설치합니다.
pip install openai
다음 코드에서는 OpenAI SDK와 통합 FoundryLocalManager
하여 로컬 모델과 상호 작용하는 방법을 보여 줍니다.
import openai
from foundry_local import FoundryLocalManager
# By using an alias, the most suitable model will be downloaded
# to your end-user's device.
alias = "phi-3.5-mini"
# Create a FoundryLocalManager instance. This will start the Foundry
# Local service if it is not already running and load the specified model.
manager = FoundryLocalManager(alias)
# The remaining code us es the OpenAI Python SDK to interact with the local model.
# Configure the client to use the local Foundry service
client = openai.OpenAI(
base_url=manager.endpoint,
api_key=manager.api_key # API key is not required for local usage
)
# Set the model to use and generate a streaming response
stream = client.chat.completions.create(
model=manager.get_model_info(alias).id,
messages=[{"role": "user", "content": "Why is the sky blue?"}],
stream=True
)
# Print the streaming response
for chunk in stream:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="", flush=True)
JavaScript SDK 참조
설치
npm에서 패키지를 설치합니다.
npm install foundry-local-sdk
FoundryLocalManager 클래스
이 FoundryLocalManager
클래스를 사용하면 브라우저 및 Node.js 환경에서 모델을 관리하고, 캐시를 제어하고, Foundry 로컬 서비스와 상호 작용할 수 있습니다.
초기화
import { FoundryLocalManager } from "foundry-local-sdk";
const foundryLocalManager = new FoundryLocalManager()
사용 가능한 옵션:
serviceUrl
: Foundry 로컬 서비스의 기본 URLfetch
: (선택 사항) Node.js 같은 환경에 대한 사용자 지정 페치 구현
별칭에 대한 메모
이 참조에 설명된 많은 메서드에는 서명에 aliasOrModelId
매개 변수가 있습니다. 메서드에 별칭 또는 모델 ID를 값으로 전달할 수 있습니다. 별칭을 사용하면 다음이 수행됩니다.
- 사용 가능한 하드웨어에 가장 적합한 모델을 선택합니다. 예를 들어 Nvidia CUDA GPU를 사용할 수 있는 경우 Foundry Local은 CUDA 모델을 선택합니다. 지원되는 NPU를 사용할 수 있는 경우 Foundry Local은 NPU 모델을 선택합니다.
- 모델 ID를 기억할 필요 없이 더 짧은 이름을 사용할 수 있습니다.
팁 (조언)
애플리케이션을 aliasOrModelId
배포할 때 Foundry Local은 런타임에 최종 사용자의 컴퓨터에 가장 적합한 모델을 획득하므로 매개 변수에 별칭 을 전달하는 것이 좋습니다.
서비스 관리
메서드 | 서명 | 설명 |
---|---|---|
init() |
(aliasOrModelId?: string) => Promise<void> |
SDK를 초기화하고 필요에 따라 모델을 로드합니다. |
isServiceRunning() |
() => Promise<boolean> |
Foundry 로컬 서비스가 실행 중인지 확인합니다. |
startService() |
() => Promise<void> |
Foundry 로컬 서비스를 시작합니다. |
serviceUrl |
string |
Foundry 로컬 서비스의 기본 URL입니다. |
endpoint |
string |
API 엔드포인트(serviceUrl + /v1 )입니다. |
apiKey |
string |
API 키(없음)입니다. |
카탈로그 관리
메서드 | 서명 | 설명 |
---|---|---|
listCatalogModels() |
() => Promise<FoundryModelInfo[]> |
카탈로그에서 사용 가능한 모든 모델을 나열합니다. |
refreshCatalog() |
() => Promise<void> |
모델 카탈로그를 새로 고칩니다. |
getModelInfo() |
(aliasOrModelId: string, throwOnNotFound = false) => Promise<FoundryModelInfo \| null> |
별칭 또는 ID로 모델 정보를 가져옵니다. |
캐시 관리
메서드 | 서명 | 설명 |
---|---|---|
getCacheLocation() |
() => Promise<string> |
모델 캐시 디렉터리 경로를 반환합니다. |
listCachedModels() |
() => Promise<FoundryModelInfo[]> |
로컬 캐시에 다운로드된 모델을 나열합니다. |
모델 관리
메서드 | 서명 | 설명 |
---|---|---|
downloadModel() |
(aliasOrModelId: string, token?: string, force = false, onProgress?) => Promise<FoundryModelInfo> |
로컬 캐시에 모델을 다운로드합니다. |
loadModel() |
(aliasOrModelId: string, ttl = 600) => Promise<FoundryModelInfo> |
모델을 유추 서버에 로드합니다. |
unloadModel() |
(aliasOrModelId: string, force = false) => Promise<void> |
유추 서버에서 모델을 언로드합니다. |
listLoadedModels() |
() => Promise<FoundryModelInfo[]> |
현재 서비스에 로드된 모든 모델을 나열합니다. |
사용 예시
다음 코드에서는 클래스를 사용하여 FoundryLocalManager
모델을 관리하고 Foundry 로컬 서비스와 상호 작용하는 방법을 보여 줍니다.
import { FoundryLocalManager } from "foundry-local-sdk";
// By using an alias, the most suitable model will be downloaded
// to your end-user's device.
// TIP: You can find a list of available models by running the
// following command in your terminal: `foundry model list`.
const alias = "phi-3.5-mini";
const manager = new FoundryLocalManager()
// Initialize the SDK and optionally load a model
const modelInfo = await manager.init(alias)
console.log("Model Info:", modelInfo)
// Check if the service is running
const isRunning = await manager.isServiceRunning()
console.log(`Service running: ${isRunning}`)
// List available models in the catalog
const catalog = await manager.listCatalogModels()
// Download and load a model
await manager.downloadModel(alias)
await manager.loadModel(alias)
// List models in cache
const localModels = await manager.listCachedModels()
// List loaded models
const loaded = await manager.listLoadedModels()
// Unload a model
await manager.unloadModel(alias)
OpenAI 클라이언트와 통합
OpenAI 패키지를 설치합니다.
npm install openai
다음 코드는 OpenAI 클라이언트에 FoundryLocalManager
을 통합하여 로컬 모델과 상호 작용하는 방법을 보여줍니다.
import { OpenAI } from "openai";
import { FoundryLocalManager } from "foundry-local-sdk";
// By using an alias, the most suitable model will be downloaded
// to your end-user's device.
// TIP: You can find a list of available models by running the
// following command in your terminal: `foundry model list`.
const alias = "phi-3.5-mini";
// Create a FoundryLocalManager instance. This will start the Foundry
// Local service if it is not already running.
const foundryLocalManager = new FoundryLocalManager()
// Initialize the manager with a model. This will download the model
// if it is not already present on the user's device.
const modelInfo = await foundryLocalManager.init(alias)
console.log("Model Info:", modelInfo)
const openai = new OpenAI({
baseURL: foundryLocalManager.endpoint,
apiKey: foundryLocalManager.apiKey,
});
async function streamCompletion() {
const stream = await openai.chat.completions.create({
model: modelInfo.id,
messages: [{ role: "user", content: "What is the golden ratio?" }],
stream: true,
});
for await (const chunk of stream) {
if (chunk.choices[0]?.delta?.content) {
process.stdout.write(chunk.choices[0].delta.content);
}
}
}
streamCompletion();
브라우저 사용량
SDK에는 서비스 URL을 수동으로 지정해야 하는 브라우저 호환 버전이 포함되어 있습니다.
import { FoundryLocalManager } from "foundry-local-sdk/browser"
// Specify the service URL
// Run the Foundry Local service using the CLI: `foundry service start`
// and use the URL from the CLI output
const endpoint = "ENDPOINT"
const manager = new FoundryLocalManager({serviceUrl: endpoint})
// Note: The `init`, `isServiceRunning`, and `startService` methods
// are not available in the browser version
비고
브라우저 버전은 init
, isServiceRunning
, 및 startService
메서드를 지원하지 않습니다. 브라우저 환경에서 SDK를 사용하기 전에 Foundry 로컬 서비스가 실행 중인지 확인해야 합니다. Foundry 로컬 CLI foundry service start
를 사용하여 서비스를 시작할 수 있습니다. CLI 출력에서 서비스 URL을 수집할 수 있습니다.
사용 예시
import { FoundryLocalManager } from "foundry-local-sdk/browser"
// Specify the service URL
// Run the Foundry Local service using the CLI: `foundry service start`
// and use the URL from the CLI output
const endpoint = "ENDPOINT"
const manager = new FoundryLocalManager({serviceUrl: endpoint})
const alias = 'phi-3.5-mini'
// Get all available models
const catalog = await manager.listCatalogModels()
console.log("Available models in catalog:", catalog)
// Download and load a specific model
await manager.downloadModel(alias)
await manager.loadModel(alias)
// View models in your local cache
const localModels = await manager.listLocalModels()
console.log("Cached models:", catalog)
// Check which models are currently loaded
const loaded = await manager.listLoadedModels()
console.log("Loaded models in inference service:", loaded)
// Unload a model when finished
await manager.unloadModel(alias)
C# SDK 참조
설치
Foundry 로컬 C# SDK를 사용하려면 NuGet 패키지를 설치해야 합니다.
dotnet add package Microsoft.AI.Foundry.Local
별칭에 대한 메모
이 참조에 설명된 많은 메서드에는 서명에 aliasOrModelId
매개 변수가 있습니다. 메서드에 별칭 또는 모델 ID를 값으로 전달할 수 있습니다. 별칭을 사용하면 다음이 수행됩니다.
- 사용 가능한 하드웨어에 가장 적합한 모델을 선택합니다. 예를 들어 Nvidia CUDA GPU를 사용할 수 있는 경우 Foundry Local은 CUDA 모델을 선택합니다. 지원되는 NPU를 사용할 수 있는 경우 Foundry Local은 NPU 모델을 선택합니다.
- 모델 ID를 기억할 필요 없이 더 짧은 이름을 사용할 수 있습니다.
팁 (조언)
애플리케이션을 aliasOrModelId
배포할 때 Foundry Local은 런타임에 최종 사용자의 컴퓨터에 가장 적합한 모델을 획득하므로 매개 변수에 별칭 을 전달하는 것이 좋습니다.
열거형
DeviceType
모델 실행에 사용되는 디바이스의 유형을 나타냅니다.
가치 | 설명 |
---|---|
CPU (중앙 처리 장치) | CPU 디바이스 |
GPU (그래픽 처리 장치) | GPU 디바이스 |
NPU | NPU 디바이스 |
유효하지 않음 | 잘못되었거나 알 수 없음 |
ExecutionProvider
모델 유추에 대한 실행 공급자를 나타냅니다.
가치 | 설명 |
---|---|
유효하지 않음 | 잘못된 공급자 |
CPUExecutionProvider | CPU 실행 |
WebGpuExecutionProvider | WebGPU 실행 |
CUDAExecutionProvider | CUDA GPU 실행 |
QNNExecutionProvider | Qualcomm NPU 실행 |
FoundryLocalManager
클래스
모델, 캐시 및 Foundry 로컬 서비스를 관리하기 위한 주요 진입점입니다.
건축
var manager = new FoundryLocalManager();
속성
재산 | 유형 | 설명 |
---|---|---|
ServiceUri | Uri |
Foundry 로컬 서비스의 기본 URI입니다. |
엔드포인트 | Uri |
API 엔드포인트(ServiceUri + /v1 )입니다. |
API 키 | string |
API 키(기본값: "OPENAI_API_KEY" )입니다. |
서비스가 실행 중입니까? | bool |
서비스가 실행 중인지를 나타냅니다. |
서비스 관리
서비스 시작
await manager.StartServiceAsync(CancellationToken.None);
아직 실행되지 않은 경우 Foundry 로컬 서비스를 시작합니다.
서비스 중지
await manager.StopServiceAsync(CancellationToken.None);
Foundry 로컬 서비스를 중지합니다.
모델 시작 및 로드(정적 도우미)
var manager = await FoundryLocalManager.StartModelAsync("aliasOrModelId");
서비스를 시작하고 지정된 모델을 로드합니다.
카탈로그 관리
모든 카탈로그 모델 나열
List<ModelInfo> models = await manager.ListCatalogModelsAsync();
카탈로그에서 사용 가능한 모든 모델을 반환합니다.
카탈로그 새로 고침
manager.RefreshCatalog();
다음 액세스에서 다시 로드되도록 캐시된 카탈로그를 지웁니다.
별칭 또는 ID로 모델 정보 가져오기
ModelInfo? info = await manager.GetModelInfoAsync("aliasOrModelId");
모델 정보를 반환하거나 null
찾을 수 없는 경우 반환합니다.
캐시 관리
캐시 위치 가져오기
string cachePath = await manager.GetCacheLocationAsync();
모델이 캐시되는 디렉터리 경로를 반환합니다.
캐시된 모델 나열
List<ModelInfo> cached = await manager.ListCachedModelsAsync();
로컬 캐시에 다운로드한 모델을 반환합니다.
모델 관리
모델 다운로드
ModelInfo? model = await manager.DownloadModelAsync("aliasOrModelId");
로컬 캐시에 모델을 다운로드합니다.
진행률이 있는 모델 다운로드
await foreach (var progress in manager.DownloadModelWithProgressAsync("aliasOrModelId"))
{
// progress.Percentage, progress.Status, etc.
}
스트림은 다운로드 진행 상황을 업데이트합니다.
모델을 로드합니다
ModelInfo loaded = await manager.LoadModelAsync("aliasOrModelId");
모델을 유추 서버에 로드합니다.
로드된 모델 나열
List<ModelInfo> loaded = await manager.ListLoadedModelsAsync();
현재 서비스에 로드된 모든 모델을 나열합니다.
모델 언로드
await manager.UnloadModelAsync("aliasOrModelId");
유추 서버에서 모델을 언로드합니다.
폐기
적절한 정리를 위해 IDisposable
와 IAsyncDisposable
둘 다 구현합니다.
manager.Dispose();
// or
await manager.DisposeAsync();
모델 형식
이 페이지에서는 모델, 다운로드 및 런타임 정보를 설명하기 위해 Foundry 로컬 C# SDK에서 사용하는 주요 데이터 형식을 설명합니다.
PromptTemplate
모델의 프롬프트 템플릿을 나타냅니다.
재산 | 유형 | 설명 |
---|---|---|
도우미 | 문자열 | 도우미의 프롬프트 템플릿입니다. |
프롬프트 | 문자열 | 사용자 프롬프트 템플릿입니다. |
Runtime
모델의 런타임 환경에 대해 설명합니다.
재산 | 유형 | 설명 |
---|---|---|
디바이스 유형 | DeviceType |
디바이스 유형(CPU, GPU 등)입니다. |
실행 제공자 | ExecutionProvider |
실행 공급자(CUDA, CPU 등)입니다. |
ModelSettings
모델별 매개 변수를 나타냅니다.
재산 | 유형 | 설명 |
---|---|---|
매개 변수 | JsonElement 목록<> | 모델 매개 변수 컬렉션 |
ModelInfo
Foundry 로컬 카탈로그 또는 캐시의 모델을 설명합니다.
재산 | 유형 | 설명 |
---|---|---|
ModelId | 문자열 | 고유한 모델 식별자. |
디스플레이 이름 | 문자열 | 사람이 읽을 수 있는 모델 이름. |
제공자 유형 | 문자열 | 공급자 유형(예: "CUDA", "CPU"). |
Uri | 문자열 | 모델에 대한 URI를 다운로드합니다. |
버전 | 문자열 | 모델 버전. |
모델 유형 | 문자열 | 모델 유형(예: "llm", "embedding"). |
프롬프트템플릿 | 프롬프트 템플릿 | 모델에 대한 프롬프트 템플릿입니다. |
게시자 | 문자열 | 모델의 게시사. |
과업 | 문자열 | 작업 유형(예: "chat", "completion") |
실행 시간 | 실행 시간 | 런타임 환경 정보입니다. |
파일크기MB | long | 모델 파일 크기(MB)입니다. |
모델 설정 | 모델 설정 | 모델별 설정입니다. |
별명 | 문자열 | 모델의 별칭입니다. |
SupportsToolCalling | bool | 도구 호출이 지원되는지 여부입니다. |
라이선스 | 문자열 | 라이선스 식별자 |
라이선스 설명 | 문자열 | 라이선스 설명입니다. |
ParentModelUri | 문자열 | 부모 모델의 URI(있는 경우)입니다. |
ModelDownloadProgress
모델 다운로드 작업의 진행률을 나타냅니다.
재산 | 유형 | 설명 |
---|---|---|
백분율 | double | 다운로드 완료율(0-100)입니다. |
완료됨 | bool | 다운로드가 완료되었는지 여부입니다. |
ModelInfo | ModelInfo? | 다운로드가 완료된 경우 모델 정보입니다. |
오류 메시지 | 문자열? | 다운로드에 실패한 경우 오류 메시지입니다. |
정적 메서드:
Progress(double percentage)
: 진행률 업데이트를 생성합니다.Completed(ModelInfo modelInfo)
: 완료된 진행 결과를 생성합니다.Error(string errorMessage)
: 오류 결과를 만듭니다.
사용 예시
using Microsoft.AI.Foundry.Local;
var manager = new FoundryLocalManager();
await manager.StartServiceAsync();
var models = await manager.ListCatalogModelsAsync();
var alias = "phi-3.5-mini";
await manager.DownloadModelAsync(alias);
await manager.LoadModelAsync(alias);
var loaded = await manager.ListLoadedModelsAsync();
await manager.UnloadModelAsync(alias);
manager.Dispose();
Rust SDK 참조
Foundry Local용 Rust SDK는 모델을 관리하고, 캐시를 제어하고, Foundry 로컬 서비스와 상호 작용하는 방법을 제공합니다.
설치
Foundry Local Rust SDK를 사용하려면 Cargo.toml
에 다음을 추가합니다.
[dependencies]
foundry-local-sdk = "0.1"
또는 cargo
를 사용하여 Foundry Local 크레이트를 추가할 수 있습니다.
cargo add foundry-local
FoundryLocalManager
Foundry 로컬 SDK 작업 관리자입니다.
분야
service_uri: Option<String>
— Foundry 서비스의 URI입니다.client: Option<HttpClient>
— API 요청에 대한 HTTP 클라이언트입니다.catalog_list: Option<Vec<FoundryModelInfo>>
— 카탈로그 모델의 캐시된 목록입니다.catalog_dict: Option<HashMap<String, FoundryModelInfo>>
— 카탈로그 모델의 캐시된 사전입니다.timeout: Option<u64>
— 선택적 HTTP 클라이언트 시간 제한입니다.
메서드
pub fn builder() -> FoundryLocalManagerBuilder
FoundryLocalManager
에 대한 새 작성기를 만듭니다.pub fn service_uri(&self) -> Result<&str>
서비스 URI를 가져옵니다.
반환: Foundry 서비스의 URI입니다.fn client(&self) -> Result<&HttpClient>
HTTP 클라이언트 인스턴스를 가져옵니다.
반환: HTTP 클라이언트.pub fn endpoint(&self) -> Result<String>
서비스의 엔드포인트를 가져옵니다.
반환: 엔드포인트 URL.pub fn api_key(&self) -> String
인증을 위한 API 키를 가져옵니다.
반환: API 키.pub fn is_service_running(&mut self) -> bool
서비스가 실행 중인지 확인하고 서비스 URI가 있는 경우 설정합니다.
반환: 실행 중인 경우true
, 그렇지 않은 경우false
.pub fn start_service(&mut self) -> Result<()>
Foundry 로컬 서비스를 시작합니다.pub async fn list_catalog_models(&mut self) -> Result<&Vec<FoundryModelInfo>>
카탈로그에서 사용 가능한 모델 목록을 가져옵니다.pub fn refresh_catalog(&mut self)
카탈로그 캐시를 새로 고칩니다.pub async fn get_model_info(&mut self, alias_or_model_id: &str, raise_on_not_found: bool) -> Result<FoundryModelInfo>
별칭 또는 ID로 모델 정보를 가져옵니다.
인수:alias_or_model_id
: 별칭 또는 모델 ID입니다.raise_on_not_found
: true이지만 찾을 수 없으면 오류가 발생합니다.
pub async fn get_cache_location(&self) -> Result<String>
캐시 위치를 문자열로 가져옵니다.pub async fn list_cached_models(&mut self) -> Result<Vec<FoundryModelInfo>>
캐시된 모델을 나열합니다.pub async fn download_model(&mut self, alias_or_model_id: &str, token: Option<&str>, force: bool) -> Result<FoundryModelInfo>
모델을 다운로드합니다.
인수:alias_or_model_id
: 별칭 또는 모델 ID입니다.token
: 선택적 인증 토큰입니다.force
: 이미 캐시된 경우 강제로 다시 다운로드합니다.
pub async fn load_model(&mut self, alias_or_model_id: &str, ttl: Option<i32>) -> Result<FoundryModelInfo>
유추를 위해 모델을 로드합니다.
인수:alias_or_model_id
: 별칭 또는 모델 ID입니다.ttl
: 선택적 수명 제한(초 단위로).
pub async fn unload_model(&mut self, alias_or_model_id: &str, force: bool) -> Result<()>
모델을 언로드합니다.
인수:alias_or_model_id
: 별칭 또는 모델 ID입니다.force
: 사용 중인 경우에도 강제로 언로드합니다.
pub async fn list_loaded_models(&mut self) -> Result<Vec<FoundryModelInfo>>
로드된 모델을 나열합니다.
FoundryLocalManagerBuilder
FoundryLocalManager
인스턴스를 생성하는 빌더입니다.
분야
alias_or_model_id: Option<String>
— 다운로드 및 로드할 별칭 또는 모델 ID입니다.bootstrap: bool
— 서비스를 실행하지 않을 경우 시작할지 여부입니다.timeout_secs: Option<u64>
— HTTP 클라이언트 시간 제한(초)입니다.
메서드
pub fn new() -> Self
새 작성기 인스턴스를 만듭니다.pub fn alias_or_model_id(mut self, alias_or_model_id: impl Into<String>) -> Self
다운로드하고 로드할 별칭 또는 모델 ID를 설정합니다.pub fn bootstrap(mut self, bootstrap: bool) -> Self
실행되지 않는 경우 서비스를 시작할지 여부를 설정합니다.pub fn timeout_secs(mut self, timeout_secs: u64) -> Self
HTTP 클라이언트 시간 제한을 초 단위로 설정합니다.pub async fn build(self) -> Result<FoundryLocalManager>
인스턴스를 빌드합니다FoundryLocalManager
.
FoundryModelInfo
모델에 대한 정보를 나타냅니다.
분야
alias: String
— 모델 별칭입니다.id: String
— 모델 ID입니다.version: String
— 모델 버전입니다.runtime: ExecutionProvider
— 실행 공급자(CPU, CUDA 등)입니다.uri: String
— 모델 URI입니다.file_size_mb: i32
— 모델 파일 크기(MB)입니다.prompt_template: serde_json::Value
— 모델에 대한 프롬프트 템플릿입니다.provider: String
— 공급자 이름입니다.publisher: String
— 게시자 이름입니다.license: String
— 라이선스 유형입니다.task: String
— 모델 작업(예: 텍스트 생성).
메서드
from_list_response(response: &FoundryListResponseModel) -> Self
카탈로그 응답에서FoundryModelInfo
을(를) 만듭니다.to_download_body(&self) -> serde_json::Value
다운로드 요청을 위해 모델 정보를 JSON 본문으로 변환합니다.
ExecutionProvider
지원되는 실행 공급자에 대한 열거형.
CPU
WebGPU
CUDA
QNN
메서드
get_alias(&self) -> String
실행 공급자에 대한 문자열 별칭을 반환합니다.
ModelRuntime
모델의 런타임 환경에 대해 설명합니다.
device_type: DeviceType
execution_provider: ExecutionProvider