커스텀 엔드포인트
커스텀 엔드포인트 기능을 사용하면 로컬에 배포된 LLM 추론 서비스(예: Ollama, LM Studio)나 기업 전용 배포 API를 Elftia에 연결할 수 있습니다. 대부분의 로컬 추론 프레임워크는 OpenAI 호환 API를 제공하므로 설정이 간단합니다.
사용 시기
- 오픈 소스 모델(Llama, Qwen, Mistral 등)을 로컬에서 실행하여 완전한 오프라인 사용을 원할 때
- 회사 내부 네트워크에 전용 LLM 서비스가 배포된 경우
- 공식 OpenAI API 대신 Azure OpenAI Service를 사용할 때
- 자체 호스팅 추론 클러스터(vLLM, TGI 등)에 연결해야 할 때
- LM Studio의 그래픽 로컬 추론 환경을 사용하고 싶을 때
Ollama
Ollama는 가장 인기 있는 로컬 모델 실행 도구로, 다양한 오픈 소스 모델을 원클릭으로 다운로드하고 실행할 수 있습니다.
사전 요구 사항
- Ollama 설치 (다운로드)
- 모델 최소 1개 다운로드 (예:
ollama pull llama3.1)
설정 단계
- Ollama가 실행 중인지 확인합니다
- Windows/macOS: 설치 후 기본적으로 백그라운드 서비스로 실행됨
- Linux:
ollama serve를 실행하여 서비스 시작 - 기본 수신 주소:
http://localhost:11434
-
Elftia에서 설정 → 프로바이더 관리를 엽니다
-
기본 Ollama 프로바이더를 찾습니다 (없을 경우 프로바이더 추가 → Ollama 프리셋 선택)
-
구성을 확인합니다:
| 필드 | 값 |
|---|---|
| API 형식 | openai |
| Base URL | http://localhost:11434/v1 |
| API Key | (비워 두기 — Ollama는 기본적으로 인증이 필요 없음) |
- 다운로드한 모델을 추가합니다:
- 모델 추가를 클릭합니다
- Ollama에서의 모델 이름을 입력합니다 (
ollama list출력 결과와 일치해야 함) - 예시:
llama3.1,qwen2.5:14b,codellama:34b
-
활성화 토글을 켜고 저장합니다
-
채팅 UI의 모델 선택 목록에서 Ollama 모델을 확인할 수 있습니다
Ollama 주요 모델
| 모델 이름 | 파라미터 수 | 용도 | 다운로드 명령 |
|---|---|---|---|
llama3.1 | 8B | 범용 채팅 | ollama pull llama3.1 |
llama3.1:70b | 70B | 고품질 채팅 | ollama pull llama3.1:70b |
qwen2.5:14b | 14B | 한국어/영어 채팅 | ollama pull qwen2.5:14b |
codellama:34b | 34B | 코드 생성 | ollama pull codellama:34b |
deepseek-coder-v2 | 16B | 코드 보조 | ollama pull deepseek-coder-v2 |
mistral | 7B | 경량 채팅 | ollama pull mistral |
llava | 7B | 비전 이해 | ollama pull llava |
원격 Ollama
로컬 네트워크의 다른 머신에서 Ollama가 실행 중인 경우:
- Ollama가 실행 중인 머신에서 환경 변수
OLLAMA_HOST=0.0.0.0:11434를 설정합니다 - Ollama 서비스를 재시작합니다
- Elftia에서 Base URL을
http://<원격-IP>:11434/v1로 변경합니다
LM Studio
LM Studio는 로컬 모델 관리 및 추론을 위한 그래픽 인터페이스를 제공하며, OpenAI 호환 API 서버가 내장되어 있습니다.
사전 요구 사항
- LM Studio 설치 (다운로드)
- 모델 최소 1개 다운로드 및 로드
설정 단계
- LM Studio에서 로컬 서버를 시작합니다:
- LM Studio를 엽니다
- Local Server 탭으로 전환합니다
- 모델을 로드합니다
- Start Server를 클릭합니다
- 서버 주소를 확인합니다 (기본값:
http://localhost:1234)
-
Elftia에서 설정 → 프로바이더 관리를 엽니다
-
프로바이더 추가 → 커스텀 프로바이더 선택을 클릭합니다
-
구성을 작성합니다:
| 필드 | 값 |
|---|---|
| 이름 | LM Studio |
| API 형식 | openai |
| Base URL | http://localhost:1234/v1/chat/completions |
| API Key | lm-studio (LM Studio는 키 검증을 하지 않지만, 필드가 필수인 경우 임의의 값 입력) |
-
모델을 추가합니다:
- LM Studio에 로드된 모델 이름을 입력합니다
- 모델 이름은 LM Studio에 표시된 모델 식별자와 일치해야 합니다
-
연결을 테스트하고 활성화한 후 저장합니다
vLLM / Text Generation Inference
vLLM과 TGI는 프로덕션 환경에서 널리 사용되는 고성능 LLM 추론 엔진입니다. 두 서비스 모두 OpenAI 호환 API를 제공합니다.
vLLM 구성
-
vLLM 서비스를 시작합니다 (예시):
python -m vllm.entrypoints.openai.api_server \--model meta-llama/Llama-3.1-8B-Instruct \--port 8000 -
Elftia에서 커스텀 프로바이더를 추가합니다:
| 필드 | 값 |
|---|---|
| 이름 | vLLM Local |
| API 형식 | openai |
| Base URL | http://localhost:8000/v1/chat/completions |
| API Key | (비워 두거나 vLLM의 --api-key 값 입력) |
- 모델 추가: vLLM 시작 시 지정한
--model이름을 사용합니다
TGI 구성
-
TGI 서비스를 시작한 후 OpenAI 호환 엔드포인트를 사용합니다
-
Elftia에서 커스텀 프로바이더를 추가합니다:
| 필드 | 값 |
|---|---|
| 이름 | TGI |
| API 형식 | openai |
| Base URL | http://localhost:8080/v1/chat/completions |
| API Key | (비워 두거나 해당 값 입력) |
Azure OpenAI
Azure OpenAI Service는 OpenAI와 동일한 모델을 사용하지만 Azure 플랫폼에서 호스팅되며, 엔터프라이즈급 SLA와 데이터 컴플라이언스 보증을 제공합니다.
사전 요구 사항
- Azure 구독 및 Azure OpenAI Service 접근 권한
- Azure Portal에서 생성된 Azure OpenAI 리소스
- 최소 1개의 모델 배포 (배포 이름 필요)
설정 단계
- Azure Portal에서 다음 정보를 가져옵니다:
- 엔드포인트(Endpoint):
https://<resource-name>.openai.azure.com형식 - API 키: "키 및 엔드포인트" 페이지에서 확인
- 배포 이름: "모델 배포" 페이지에서 확인
- API 버전:
2024-08-01-preview권장
- 엔드포인트(Endpoint):
-
Elftia에서 설정 → 프로바이더 관리를 엽니다
-
프로바이더 추가 → Azure OpenAI 프리셋 선택을 클릭합니다
-
구성을 작성합니다:
| 필드 | 값 | 예시 |
|---|---|---|
| API 형식 | azure-openai | -- |
| Base URL | Azure 엔드포인트 | https://my-resource.openai.azure.com |
| API Key | Azure API 키 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| API Version | API 버전 번호 | 2024-08-01-preview |
-
모델을 추가합니다:
- 모델 ID에 Azure 배포 이름을 사용합니다 (모델 이름이 아님)
- 예를 들어
gpt-4o를my-gpt4o로 배포한 경우, 모델 ID에my-gpt4o를 입력합니다
-
연결을 테스트하고 활성화한 후 저장합니다
Azure와 표준 OpenAI의 차이점
| 기능 | OpenAI | Azure OpenAI |
|---|---|---|
| Base URL | https://api.openai.com/v1/... | https://<resource>.openai.azure.com |
| 인증 | Authorization: Bearer sk-... | api-key: ... |
| 모델 지정 | 모델 이름 사용 (예: gpt-4o) | 배포 이름 사용 |
| API 버전 | 불필요 | 필수 (URL 파라미터) |
| API 형식 | openai | azure-openai |
구성 항목 참조
커스텀 엔드포인트 시나리오에 적용되는 구성 항목:
| 설정 | 유형 | 기본값 | 설명 |
|---|---|---|---|
| 이름 | 문자열 | -- | 커스텀 표시 이름 |
| API 형식 | 열거형 | openai | 로컬 서비스는 보통 openai, Azure는 azure-openai 사용 |
| Base URL | URL | -- | 추론 서비스의 API 주소 |
| API Key | 문자열 | (비어 있음) | 로컬 서비스는 보통 불필요; Azure는 필수 |
| API Version | 문자열 | (비어 있음) | Azure OpenAI 전용 필수, 예: 2024-08-01-preview |
| 모델 목록 | 배열 | (비어 있음) | 서비스에서 사용 가능한 모델 이름을 수동으로 입력 |
| Transformer | 배열 | (비어 있음) | 커스텀 엔드포인트는 보통 추가 Transformer가 필요 없음 |
동작 참고 사항
로컬 서비스 특별 고려 사항
- API 키 검증 없음: 대부분의 로컬 서비스(Ollama, LM Studio)는 API 키가 필요하지 않습니다. Elftia의 API 키 필드가 필수인 경우 임의의 값을 입력하세요
- 모델 핫 로딩: 일부 서비스는 동적 모델 로딩을 지원합니다. 서비스에 새 모델을 추가한 후 Elftia에서 해당 모델 이름을 추가하기만 하면 됩니다
- 동시성 제한: 로컬 서비스는 보통 한 번에 하나의 요청만 처리하므로 동시성 제한을 1로 설정하세요
- 첫 응답 지연: 로컬 모델이 GPU 메모리에 로드되는 데 몇 초가 걸릴 수 있어 첫 번째 요청은 지연이 눈에 띌 수 있습니다
프록시 및 네트워킹
- 로컬 서비스(
localhost/127.0.0.1)는 글로벌 프록시를 통하지 않습니다 - LAN 서비스는 프록시 구성에 따라 프록시 제외 목록에 추가해야 할 수 있습니다
모델 기능
로컬 모델의 기능 플래그(비전, 함수 호출 등)는 Elftia에서 수동으로 설정해야 합니다. 모델이 비전을 지원하더라도 플래그가 설정되지 않으면 Elftia는 해당 모델에 이미지를 전송하지 않습니다.
문제 해결
| 문제 | 가능한 원인 | 해결 방법 |
|---|---|---|
| 연결 거부됨 | 로컬 서비스가 실행 중이지 않음 | Ollama/LM Studio/vLLM이 실행 중인지 확인 |
| 연결 타임아웃 | 잘못된 포트 또는 방화벽 차단 | 포트 번호 확인; 방화벽이 연결을 허용하는지 확인 |
| 모델을 찾을 수 없음 | 모델 이름이 서버와 일치하지 않음 | ollama list 또는 서버의 모델 목록으로 이름 확인 |
| Ollama 원격 연결 실패 | Ollama가 기본적으로 localhost만 수신 | OLLAMA_HOST=0.0.0.0:11434 설정 후 재시작 |
| LM Studio가 빈 응답 반환 | 모델이 메모리에 로드되지 않음 | LM Studio에서 모델이 로드되어 "Ready" 상태인지 확인 |
| Azure에서 404 반환 | 잘못된 배포 이름 | 모델 ID로 모델 이름이 아닌 배포 이름을 사용하는지 확인 |
| Azure에서 401 반환 | 잘못된 API 버전 또는 키 | API Version 필드와 API Key 확인 |
| 응답이 깨진 문자로 표시됨 | 모델이 해당 언어를 지원하지 않음 | 대상 언어를 지원하는 모델로 전환 (예: Qwen, ChatGLM) |
| GPU 메모리 부족 | 모델이 너무 큼 | 더 작은 양자화 버전 선택 (예: llama3.1:8b-q4_0) |
| 요청이 멈추고 응답 없음 | 로컬 서비스가 모델 로딩 중 | 모델 로딩이 완료될 때까지 기다림; 첫 번째 요청은 10~30초가 걸릴 수 있음 |
관련 페이지
- LLM 프로바이더 개요 - 프로바이더 시스템 및 API 형식 이해
- 프로바이더 추가 - 프로바이더 추가 완전 가이드
- API 키 풀 - 클라우드 프로바이더의 다중 키 관리
- 모델 파라미터 - 온도 등 생성 파라미터 조정