지식 기반 섹션 ▾

내비게이션

▸ 여기서 시작하세요 역할별

카테고리

도구 37
용어집 12

도구

LlamaIndex + Gonka AI — 저렴한 RAG 애플리케이션

LlamaIndex는 RAG 애플리케이션과 AI 에이전트를 Python으로 구축하기 위한 선도적인 프레임워크입니다(TypeScript 버전인 LlamaIndex.TS도 존재합니다). 문서 로드, 청크 분할, 인덱싱, 벡터 검색 및 응답 생성 과정을 모두 처리하며, 데이터를 정의하기만 하면 LlamaIndex가 이를 모든 LLM 위에서 작동하는 질의응답 시스템으로 변환합니다.

유일한 문제는 추론 비용입니다. RAG는 본질적으로 토큰 소모량이 많습니다. 질문마다 쿼리와 검색된 컨텍스트 조각들이 모델로 전달되고, 대규모 인덱싱에는 임베딩이 추가되기 때문입니다. 프로덕션 규모에서는 하루 수천 건의 요청이 발생합니다. OpenAI(1M 토큰당 $2.50–15)나 Anthropic(1M 토큰당 $3–15)을 사용하면 작은 Q&A 서비스도 월 수만 달러의 비용이 발생합니다.

LlamaIndex는 OpenAILike 클래스를 통해 모든 OpenAI 호환 엔드포인트와 네이티브하게 작동합니다. 즉, JoinGonka Gateway를 몇 줄의 코드로 연결할 수 있으며, 커스텀 프로바이더나 패치가 필요 없습니다. 그 결과, 동일한 RAG 시스템이 탈중앙화 네트워크 Gonka를 통해 입력 1M 토큰당 $0.0069(출력 ×3)의 비용으로 작동하여 클라우드 API 대비 수백~수천 배 저렴합니다.

빠른 시작: OpenAILike를 통한 연결

JoinGonka API 키: gate.joingonka.ai/register에서 등록하여 3M개의 무료 토큰을 받고 Dashboard에서 jg-xxx 키를 생성하세요.

설치:

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

임의의 OpenAI 호환 API를 위해 LlamaIndex는 llama_index.llms.openai_like 패키지에서 OpenAILike 클래스를 제공합니다. Gonka에 대한 최소 요청 예제입니다:

from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-ваш-ключ",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,            # Gonka는 chat 엔드포인트입니다
    is_function_calling_model=True, # 네이티브 tool calling 지원
    context_window=200000,         # 네트워크 모델 200K
    max_tokens=8192,               # Gateway를 통한 출력 제한
)

response = llm.complete("RAG가 무엇인지 3문장으로 설명해줘.")
print(response)

OpenAILike 관련 중요 사항: 반드시 is_chat_model=True를 지정하세요. 그렇지 않으면 LlamaIndex는 저희가 지원하지 않는 completion 엔드포인트로 이동합니다. is_function_calling_model=True는 네이티브 tool calls를 활성화합니다. LlamaIndex가 컨텍스트를 올바르게 처리할 수 있도록 context_window를 모델에 맞춰 설정하세요.

예제: 쿼리 엔진을 사용한 RAG 파이프라인

LlamaIndex의 일반적인 시나리오는 문서 인덱싱 및 query_engine을 통한 쿼리입니다. 전역 LLM은 Settings.llm을 통해 한 번 설정하며, 그 이후 모든 파이프라인에서 Gonka가 자동으로 사용됩니다.

from llama_index.core import (
    VectorStoreIndex,
    SimpleDirectoryReader,
    Settings,
)
from llama_index.llms.openai_like import OpenAILike
from llama_index.embeddings.huggingface import HuggingFaceEmbedding

# 1. Gonka를 통한 LLM (전역 설정)
Settings.llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-your-key",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,
    context_window=200000,
    max_tokens=8192,
)

# 2. 로컬 임베딩 (무료, OpenAI 사용 안 함)
Settings.embed_model = HuggingFaceEmbedding(
    model_name="BAAI/bge-small-en-v1.5"
)

# 3. ./data 폴더에서 문서 로드 및 인덱싱
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)

# 4. 지식 베이스 검색
query_engine = index.as_query_engine()
response = query_engine.query("이 문서는 무엇에 대한 내용인가요?")
print(response)

임베딩(embeddings) 관련 중요한 팁: 기본적으로 VectorStoreIndex는 OpenAI 임베딩(text-embedding-ada-002)을 사용합니다. 이는 Gonka가 아닌 OpenAI에 부과되는 별도의 유료 호출입니다. OpenAI에 의존하지 않으려면 Settings.embed_model을 통해 로컬 임베딩 모델(예: 위 예제의 HuggingFaceEmbedding, 별도 pip install llama-index-embeddings-huggingface 필요)을 지정하십시오. 이렇게 하면 생성이 Gonka를 통해 이루어지고 벡터화는 로컬에서 무료로 처리됩니다.

비용: RAG 파이프라인 요청 한 번(검색+생성)은 약 2~5K의 LLM 토큰을 소비합니다. Gonka를 사용하면 극히 적은 비용으로 가능하며, OpenAI/Anthropic 대비 3~4배 이상 저렴합니다. 하루 수천 건의 요청이 발생하는 환경에서는 매달 수만 달러의 비용을 절감할 수 있습니다.

RAG 워크로드 비용 비교

RAG 애플리케이션은 일회성 채팅이 아닌 지속적인 요청의 흐름입니다. 사용자 질문마다 LLM은 2~5K 토큰(질문과 검색된 문맥 조각)을 소비합니다. 일반적인 볼륨과 공급자별 비용을 계산해보겠습니다. JoinGonka Gateway를 통한 Gonka의 가격은 입력 시 약 $0.0069/1M 토큰, 출력 시 3배입니다.

시나리오LLM 토큰OpenAI / AnthropicJoinGonka Gonka
지식 베이스 질문~4K$0.01 — $0.06~$0.00004
지원 챗봇 (1K 요청/일)~4M/일$10 — $60/일~$0.038/일
코퍼스 인덱싱 + Q&A (1M 단어)~5M$12 — $75~$0.048
프로덕션 서비스 (50K 요청/월)~200M/월$500 — $3,000/월~$1.92/월

무료 3M 토큰으로 RAG 파이프라인의 초기 요청을 테스트하고, 테스트용 코퍼스 인덱싱을 수행하며, 수천 건의 요청을 비용 부담 없이 처리할 수 있습니다. 프로덕션 환경에서 JoinGonka Gateway는 RAG를 고비용 서비스에서 비용을 거의 느끼지 못할 수준으로 바꿔줍니다.

에이전트, 도구 호출 및 모델 선택

LlamaIndex는 문서에 기반한 답변뿐만 아니라 도구를 갖춘 에이전트를 구축할 수도 있습니다. 3가지 Gonka 모델 모두 네이티브 tool calling을 지원하여, 텍스트 파싱 없이 구조화된 방식으로 함수를 호출합니다. 도구를 사용하는 에이전트 예시:

import asyncio
from llama_index.core.agent.workflow import FunctionAgent
from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-your-key",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,
    is_function_calling_model=True,
    context_window=200000,
    max_tokens=8192,
)

def multiply(a: float, b: float) -> float:
    """두 숫자를 곱합니다."""
    return a * b

agent = FunctionAgent(
    tools=[multiply],
    llm=llm,
    system_prompt="당신은 유용한 보조자입니다. 계산할 때는 도구를 사용하세요.",
)

async def main():
    result = await agent.run("1234 곱하기 5678은 얼마인가요?")
    print(result)

asyncio.run(main())

모델 선택 (model 필드 및 해당 context_window / max_tokens 제한):

모델 (model)컨텍스트최대 출력용도
MiniMaxAI/MiniMax-M2.7200K8192기본값(예시와 동일): tool calling, 에이전트, RAG
deepseek-ai/DeepSeek-V4-Flash-0731380K32768네트워크상 두 번째로 긴 컨텍스트, 가장 긴 출력, 저렴한 대용량 프롬프트
zai-org/GLM-5.3-Flash390K8192추론 모델: 복잡한 논리, 가장 긴 컨텍스트; 추론 과정에서 max_tokens 일부 소모

Gateway를 통한 max_tokens 제한은 MiniMax M2.7 및 GLM-5.3 Flash의 경우 최대 8192, DeepSeek V4 Flash의 경우 최대 32768입니다. 비스트리밍 요청 시 max_tokens를 설정하지 않으면 기본적으로 최대 1500 토큰이 반환되므로, RAG 응답 및 에이전트 단계에서는 값을 명시적으로 설정하십시오.

TypeScript: LlamaIndex.TS에도 동일한 경로가 있습니다. @llamaindex/openai 패키지의 OpenAI 클래스는 baseURLapiKey를 허용(또는 OPENAI_BASE_URL / OPENAI_API_KEY 환경 변수 읽음)하므로 Node.js 스택에서도 동일한 Gateway에 연결할 수 있습니다. Python 프레임워크로 AI 애플리케이션을 구축 중이라면 LangChain 가이드도 확인해보시기 바랍니다.

LlamaIndex + Gonka = 비용 절감된 프로덕션용 RAG 및 에이전트. OpenAILike(is_chat_model=True) 연결, 네이티브 툴 콜링 및 로컬 임베딩 지원 — 입력 비용은 OpenAI의 $2.50–15 대비 $0.0069/1M 토큰. 시작 토큰으로 카드 등록 없이 파이프라인을 시험해보세요.

더 자세히 알고 싶으세요?

다른 섹션을 탐색하거나 지금 GNK를 얻기 시작하세요.

무료 토큰 받기 →