본문으로 건너뛰기

LlamaIndex

LlamaIndex는 문서 색인·검색 특화 RAG 프레임워크입니다.
대규모 문서 기반 AI 서비스 구축에 최적화되어 있습니다.

정보

iwinv API는 OpenAI 호환 커스텀 엔드포인트이므로 llama_index.llms.openai.OpenAI 대신
OpenAILike 를 사용해야 합니다.

설치

pip install llama-index llama-index-llms-openai-like llama-index-embeddings-openai

기본 설정

from llama_index.llms.openai_like import OpenAILike
import os

llm = OpenAILike(
model="gemma4-26b",
api_base="https://ai-api.iwinv.kr/v1",
api_key=os.environ["IWINV_API_KEY"],
is_chat_model=True,
is_function_calling_model=True,
context_window=262000
)

기본 호출

response = llm.complete("iwinv 클라우드에 대해 알려주세요.")
print(response.text)

문서 기반 Q&A

from llama_index.core import VectorStoreIndex, Document, Settings
from llama_index.llms.openai_like import OpenAILike
from llama_index.embeddings.openai import OpenAIEmbedding

# LLM 설정
Settings.llm = OpenAILike(
model="gemma4-26b",
api_base="https://ai-api.iwinv.kr/v1",
api_key=os.environ["IWINV_API_KEY"],
is_chat_model=True,
is_function_calling_model=True,
context_window=262000
)

# 임베딩 모델 설정
Settings.embed_model = OpenAIEmbedding(
model="text-embedding-3-large",
api_key=os.environ["IWINV_API_KEY"],
api_base="https://ai-api.iwinv.kr/v1"
)

# 문서 로드
documents = [
Document(text="iwinv는 국내 클라우드 서비스 기업입니다."),
Document(text="iwinv AI API는 단일 Key로 다양한 LLM을 사용할 수 있습니다."),
Document(text="iwinv GPU 서버는 RTX 4090, RTX 5090 등을 지원합니다.")
]

# 인덱스 생성
index = VectorStoreIndex.from_documents(documents)

# 질의
query_engine = index.as_query_engine()
response = query_engine.query("iwinv AI API가 무엇인가요?")
print(response)

모델별 context_window 설정

OpenAILike는 컨텍스트 크기를 자동으로 감지하지 못하므로 모델에 맞게 직접 지정해야 합니다.

모델 IDcontext_window
gemma4-26b262000
gemma4-31b262000
qwen3.6-27b262000
gemini-2.5-pro1048576
gemini-2.5-flash1048576
gpt-5272000
gpt-4.11000000
opus-4.71000000
sonnet-4.61000000
haiku-4.5200000

채팅 엔진

대화 문맥을 유지하는 채팅 엔진입니다.

chat_engine = index.as_chat_engine()

response = chat_engine.chat("iwinv AI API를 사용하려면 어떻게 해야 하나요?")
print(response)

response = chat_engine.chat("비용은 어떻게 청구되나요?")
print(response)

스트리밍

response = llm.stream_complete("iwinv 클라우드의 장점을 설명해주세요.")
for chunk in response:
print(chunk.delta, end="", flush=True)