| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- python기초
- 기초
- 정보처리기사
- ASR
- CLIP
- Python
- CNN
- 생성형 인공지능
- 힙정렬
- 딥러닝
- RDBMS
- 데이터 시각화
- 캐글
- Transformer
- 머신러닝
- 알고리즘
- LangGraph
- 소프트웨어 개발
- SQL
- UMAP
- 객체지향
- 자연어처리
- 데이터엔지니어
- RNN
- python 기초
- 랭그래프
- 에이전트
- dementional reduction
- TTS
- 트랜스포머
- Today
- Total
수달이네 기술 블로그
Reflection에이전트가 스스로 결과를 평가·비판한 후 그 피드백을 상태에 기록, 필요시 수정 루프를 돌아 답을 개선하는 설계패턴작성노드 → 리플렉션 노드 → 라우팅(조건부 엣지)리플렉션 노드: 품질 기준(예: 정확성, 근거, 형식)을 점수·코멘트(score, critique)로 남긴다.라우터: 정보를 읽어 임계값에 따라 다시 작성노드로 돌아가거나 종료노드로 향한다.위 패턴은 무한루프를 막기 위한 max_iters같은 반복한도를 둔다.LLM의 자기검토 능력을 활용해 코드 생성, 질의 응답, 체인드 리저닝등의 정확도·일관성을 높이는데 쓰인다.import getpassimport osdef _set_env(var:str): if not os.environ.get(var): os.environ[var] ..
랭그래프 구성from typing import Annotatedfrom typing_extensions import TypedDictfrom langgraph.graph import StateGraph, START, ENDfrom langgraph.graph.message import add_messagesclass State(TypedDict): messages: Annotated[list, add_messages] graph_builder = StateGraph(State)def chatbot(state: State): return {"messages" : [llm_with_tools.invoke(state["messages"])]} # 일반적인 질문에 대한 일반 답변 or tool_callsgrap..
Tool Calling Agent자신이 가진 지식 외에 외부 도구(API, 데이터베이스, 코드 실행기 등)을 호출해 문제를 해결하는 에이전트LLM이 사용자의 질문을 받는다.해당 질문을 분석해 search_tool이 필요하다 판단하면 해당 도구를 호출하라는 메세지를 출력한다.라우팅 함수를 통해 도구실행 노드로 이동하거나, 최종 답변 가능시 답변함.도구를 실행할 경우 결과값을 다시 LLM에 전달한다.LLM이 결과를 보고 최종응답을 생성한다.기존엔 LangChain이 위의 모든 과정을 블랙박스 상태로 스스로 해냈다. 그러나.개발자가 직접 강제로 노드를 연결하지 못함.도구를 무한히 호출하는 오류로 토큰 낭비가 생김.등 위의 문제를 해결하기 위해 LangGraph를 사용해 구현하는게 더 좋다.https://doc..
그래프 상태 업데이트랭그래프에는 State Graph라는 개념이 존재한다.노드 + 노드 + 노드 → 이런 식으로 Chain을 이루며 연결됨.여기서 state(상태)가 계속 전달 된다.state엔 message라는 key와 anymessage 라는 value 리스트가 존재여기서 TypeDict를 통해 messages : list[AnyMessage]이런식으로 표현해 타입을 명확히 전달 가능상태 설정from langchain_core.messages import AnyMessagefrom typing_extensions import TypedDictclass State(TypedDict): messages: list[AnyMessage] extra_field: int상태를 정의한다.LangChain 에 ..
상태(State)에이전트가 현재 어떤 정보를 가지고 있는지를 표현하는 데이터 구조. → TypedDict, Pydantic BaseModel을 통해 정의 가능TypedDict: 단순히 키와 값의 명시하기만 할 뿐 잘못된 타입이 들어가도 실행 가능Pydantic BaseModel: 실제 실행 시점에 타입을 엄격하게 검사해 잘못된 데이터가 들어올 때, 오류 발생상황에 따라 구조만 명시할 땐 TypedDict, 런타임에서 유효성을 보장할 땐 Pydantic을 활용함.Typedictfrom typing import TypedDictclass User(TypedDict): id: int name: str email: struser1: User = { 'id': 1, 'name': '김사..
Lang ChainLLM을 활용한 어플을 쉽게 개발할 수 있도록 다양한 기능을 제공하는 프레임워크이것으로 챗봇, 문서기반 질의응답, 에이전트 시스템등 AI서비스를 효율적으로 구축할 수 있도록 도움프롬프트 관리(LLM에 던지는 쿼리)문서검색(Retrieval)벡터 데이터베이스 연동체인(Chain)구조를 통한 여러 작업의 연결외부 도구 사용을 하나의 흐름으로 구성LangGraphLangChain 생태계에서 에이전트나 RAG 시스템을 단계 별로 구성하고 실행할 수 있게 해주는 그래프 기반 오케스트레이션 프레임워크오케스트레이션: 여러 에이전트, 도구, 모듈을 어떻게 연결해서 언제 무엇을 호출할지를 정의하고 실행 (어원-오케스트라)기존 RAG, 랭체인은 앞단계의 출력이 뒷단계의 입력으로 일방향으로 돌아가는 직선형..