지식 기반 섹션 ▾

내비게이션

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

카테고리

도구 32
용어집 12

도구

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

LlamaIndex는 Python으로 RAG 애플리케이션과 AI 에이전트를 구축하기 위한 선도적인 프레임워크입니다(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.003(출력은 3배)에 작동하며, 클라우드 API보다 수백~수천 배 저렴합니다.

빠른 시작: OpenAILike를 통한 연결

JoinGonka API 키: gate.joingonka.ai/register 에 가입하여(처음 가입 시 1,000만 토큰 무료 제공) 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-your-key",
    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가 무엇인지 세 문장으로 설명해주세요.")
print(response)

OpenAILike 관련 중요 사항: 반드시 is_chat_model=True를 설정하십시오. 그렇지 않으면 LlamaIndex가 Gonka에서 지원하지 않는 completion 엔드포인트로 이동합니다. is_function_calling_model=True는 네이티브 tool call을 활성화합니다. context_window는 모델별로 설정하여 LlamaIndex가 컨텍스트를 올바르게 분할하도록 하십시오.

예제: 쿼리 엔진을 사용한 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 애플리케이션은 일회성 채팅이 아니라 지속적인 요청 스트림입니다. 각 사용자 질문은 2~5K 토큰의 LLM 리소스를 소비합니다(질문 자체와 검색된 문맥 조각 포함). 일반적인 사용량과 각 공급자별 비용을 계산해보겠습니다. JoinGonka Gateway를 통한 Gonka 가격: 입력 약 $0.003/1M, 출력은 3배입니다.

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

무료 10M 토큰을 활용하면 RAG 파이프라인 전체를 디버깅하고, 테스트 코퍼스를 인덱싱하며, 수천 개의 요청을 처리하는 테스트를 비용 없이 진행할 수 있습니다. 프로덕션 규모에서 JoinGonka Gateway는 RAG를 고비용 서비스에서 거의 눈에 띄지 않는 수준의 지출로 바꿔줍니다.

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

LlamaIndex는 문서 기반 답변뿐만 아니라 도구를 사용하는 에이전트 구축도 가능합니다. 모든 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():
    # 1234 곱하기 5678은?
    result = await agent.run("1234 곱하기 5678은 얼마인가요?")
    print(result)

asyncio.run(main())

모델 선택 (model 필드 및 그에 맞는 context_window / max_tokens 제한):

모델 (model)컨텍스트최대 출력추천 상황
moonshotai/Kimi-K2.6200K8192기본: 강력한 추론, tool calling, 에이전트
MiniMaxAI/MiniMax-M2.7200K8192RAG, 긴 컨텍스트, 긴 답변

Gateway를 통한 max_tokens 제한은 네트워크의 모든 모델에 대해 최대 8192입니다. 비스트리밍 요청에서 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) 연결, 네이티브 tool calling, 로컬 임베딩 지원. OpenAI의 $2.50–15 대비 입력 1M당 $0.003의 비용. 10M 무료 토큰으로 파이프라인 전체를 충분히 디버깅할 수 있습니다.

더 자세히 알고 싶으세요?

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

1천만 무료 토큰 받기 →