본문 바로가기

AI Codes43

LangChain의 structured output 방법 정리 Structured Output이란 말 그대로 구조화된 출력으로, 정해진 규칙과 규격 내에서 LLM이 답변하게 만드는 방법이다. LangChain 뿐만 아니라 OpenAI SDK, Google Gemini SDK, Anthropic의 Claude SDK에서도 구조화된 출력을 지원한다. 여기서는 LangChain의 구조화된 출력을 알아보는데, JSON과 Pydantic을 중심으로 알아본다. LangChain LangChain의 Output Parser 문서 (링크)를 보면 JSON, CommaSeparatedList, XML 출력 파서들을 지원한다. Docs의 Structured Output 파트 (링크)를 보면 Pydantic, TypedDict, JSON schema를 지원한다.LangChain의 출.. 2025. 12. 12.
LangGraph에서 비동기 병렬 처리 LangGraph에서의 비동기 병렬 작업 LangGraph에서 비동기로 실행하기 위해서 아래 Figure 1처럼 구조를 만들었다. 노드 A에서 시작해서, 노드 B와 노드 C로 각각 병렬적으로 명령을 시킨다. Node B와 C는 각각 자신의 작업이 끝나면 곧바로 종료한다. 다른 노드의 작업이 아직 진행중인지 여부는 상관 없다. 노드 설정 from typing import TypedDict, Annotated, List, Optional, Dict, Anyfrom langgraph.graph import StateGraph, END, STARTimport operatorimport asyncioimport timeimport randomfrom datetime import datetimeclass Gr.. 2025. 11. 4.
GPT-OSS-120B을 실제로 실행하는 내용들 llama-cpp의 --cpu-moe 옵션을 활용해 MOE 전문가 레이어를 CPU에서 처리하고, 주의(attention) 레이어만 GPU에 오프로드해 5~8GB VRAM으로 빠른 프리필 성능을 구현 CPU-MOE와 GPU 오프로딩 구조--cpu-moe 옵션으로 전문가(MOE) 레이어를 전부 CPU에서 처리예: --n-cpu-moe 36 → 36개 MOE 블록 전부 CPU 실행필요 시 일부 MOE만 GPU로 옮겨 성능 조정 가능GPU에는 다음만 상주시켜 VRAM 절약KV 캐시(시퀀스)Attention 가중치와 활성값라우팅 테이블LayerNorm 및 기타 비전문가 파라미터MOE 가중치는 GPU에 상주하지 않아 대형 MLP 파라미터 부담 없음 Step 1: 최초 추론 실행 어떤 방식이라도 최초 추론(base.. 2025. 8. 18.
Huggingface에서 데이터 다운로드하는 두 가지 방법 허깅페이스에 있는 데이터를 받아서 사용할 일이 있다. 이때 데이터가 작은 경우는 바로 모든 데이터를 다운 받으면 되지만, 일부 데이터만 다운받고 싶거나 데이터가 너무 커서 순차적으로 다운 받는 경우가 있다. 이런 경우에는 파일의 목록을 불러와서 일부만 선택하거나, 순차적으로 일부만 다운 받는 식으로 처리할 수 있다. 일반적인 다운로드 방법한번에 전체 데이터 다운로드. 1. Pandas에 huggingface의 데이터셋을 직접 연결 from datasets import Datasetimport pandas as pddf = pd.read_csv("https://huggingface.co/datasets/imodels/credit-card/raw/main/train.csv")df = pd.DataFr.. 2025. 8. 13.
LLM 에이전트 기반 음악 추천 챗봇 개발 v0.0.3 후기 개요 v0.0.2 (링크)에서 LLM API의 예상 비용을 추가해야겠다고 했는데 드디어 추가했다. 개발한 결과는 Github (링크)에 올렸다. v0.0.2부터 시작한거지만 tag로 버젼을 추가하고, branch를 파서 pull request 형식으로 이력을 관리하기 시작했다. LLM API 가격 OpenAI, Google, Anthropic의 API 가격을 직접 yaml로 정리해서 config에 추가했다. YAML 데이터 LLM 호출 예상 비용 대시보드 MongoDB에 비용과 관련된 내용을 저장한다.그 이유는 나중에 밝힌다. 현재는 웹 검색 에이전트, 선호도 로딩 에이전트, 수퍼바이저 에이전트의 3가지라서 각각의 input_tokens, cached_input_tokens, output.. 2025. 8. 13.
LLM 에이전트 기반 음악 추천 챗봇 개발 v0.0.2 후기 v0.0.1 후기 포스트 (링크)에서 추후 개발할 내용을 아래처럼 정리했다. 추후 개발할 내용현재는 OpenAI 모델만을 작동 확인. Gemini와 Anthropic 모델의 작동 확인 필요. 전체 대화 혹은 특정 기간의 대화 (추천)을 집합적으로 평가하는 대시보드 추가 다양한 모델과 집합적 모니터링 대시보드를 통해서 모델별 평가 가능 Spotify API와 Diversity 등을 통해서 흔하지 않은 노래 추천 기능 향상 도모 LangSmith의 추적 내용을 streamlit 대시 보드로 통합 가능한지 확인 필요 많은 내용들 중에서 일단, 맨 마지막 부분인LangSmith의 추적 내용을 streamlit 대시 보드로 통합 가능한지 확인 필요 을 살펴보았다. 해결과정목표를 위한 사고 과정은 다음과 같다... 2025. 7. 30.