NVIDIA NIM API 무료로 쓰기 — mistral-nemotron으로 뉴스 수집봇 만든 방법

NVIDIA가 강력한 LLM API를 무료 크레딧으로 제공한다. 사용 방법과 로컬 Ollama 대비 차이점.

NVIDIA NIM API 무료로 쓰기 — mistral-nemotron으로 뉴스 수집봇 만든 방법

NVIDIA NIM이 뭔가

NVIDIA가 운영하는 LLM API 서비스입니다. 고성능 모델들을 API로 제공합니다.

  • mistral-nemotron: Mistral과 NVIDIA가 만든 모델
  • llama 시리즈: Meta의 Llama 모델들
  • 기타: 다양한 오픈소스 모델

처음 가입하면 크레딧을 줍니다. 이걸로 꽤 많이 테스트할 수 있습니다.


가입 및 API 키 발급

  1. build.nvidia.com 접속
  2. 계정 생성 (NVIDIA 계정)
  3. API Keys → Generate Key
  4. 발급된 키를 안전한 곳에 저장 (다시 볼 수 없음)

API 사용 — OpenAI 호환

NIM API는 OpenAI API와 호환됩니다. openai 패키지를 그대로 씁니다.

from openai import OpenAI

client = OpenAI(
    base_url="https://integrate.api.nvidia.com/v1",
    api_key="nvapi-xxxxxxxxxxxxxxxxxxxx"  # NIM API 키
)

response = client.chat.completions.create(
    model="mistralai/mistral-nemotron",
    messages=[{
        "role": "user",
        "content": "다음 뉴스를 한 줄로 요약해줘: ..."
    }],
    max_tokens=200,
    temperature=0.3
)

print(response.choices[0].message.content)

JARVIS에서 어떻게 쓰나

뉴스봇 (네모봇)이 NIM API를 씁니다.

흐름:
1. 구글 뉴스 RSS 수집
2. 기사 제목 + 본문 추출
3. mistral-nemotron으로 요약
4. Telegram 그룹으로 전송
5. Pearl Finder로 브릿지 (nimbot_to_pearl.py)

30분마다 자동 실행됩니다.


로컬 Ollama 대비 비교

NVIDIA NIM로컬 Ollama
속도빠름 (NVIDIA H100)보통 (RTX 5060 Ti)
비용크레딧 소진 후 유료전기세만
인터넷필요불필요
프라이버시데이터 외부 전송로컬만
모델 선택NIM 지원 모델만Ollama 지원 모델

뉴스 요약처럼 빠른 처리가 필요한 작업은 NIM이 좋습니다. 민감한 데이터 처리나 비용 절감은 로컬.


크레딧 관리

처음 받은 크레딧이 생각보다 빨리 소진됩니다.

절약 방법:

  • max_tokens를 필요한 만큼만 (200~500)
  • temperature 낮게 (0.1~0.3) — 불필요한 토큰 생성 줄임
  • 짧은 프롬프트
  • 캐싱: 같은 입력이면 API 재호출 안 하도록
import hashlib
import json
from pathlib import Path

CACHE_DIR = Path("D:/bots/cache")

def ask_nim_cached(prompt: str) -> str:
    # 캐시 키 생성
    cache_key = hashlib.md5(prompt.encode()).hexdigest()
    cache_file = CACHE_DIR / f"{cache_key}.json"
    
    # 캐시 히트
    if cache_file.exists():
        return json.loads(cache_file.read_text())["response"]
    
    # API 호출
    response = ask_nim(prompt)
    
    # 캐시 저장
    cache_file.write_text(json.dumps({"response": response}))
    return response

문제: 크레딧 소진 후

크레딧이 다 떨어지면 유료입니다.

NIM 봇이 크레딧 부족 오류를 내기 시작하면:

옵션 A: 결제
옵션 B: 로컬 모델로 교체 (mistral-nemotronqwen3:14b on Ollama)

현재는 크레딧이 있을 때 NIM, 부족하면 자동으로 Ollama 폴백하도록 했습니다:

def ask_llm(prompt: str) -> str:
    try:
        return ask_nim(prompt)
    except Exception as e:
        if "quota" in str(e).lower() or "credit" in str(e).lower():
            return ask_ollama(prompt, model="qwen3:14b")
        raise

현재 상태

뉴스봇이 30분마다 뉴스를 수집하고 요약합니다. NIM API 크레딧이 있으면 NIM, 없으면 Ollama 폴백.

뉴스 요약 품질은 NIM(mistral-nemotron)이 더 낫습니다. 한국어도 잘 처리합니다.

#NVIDIA NIM#API#LLM#mistral-nemotron#뉴스수집