전체 글 89

[LangGraph] LangGraph 란 무엇인가?

LangGraph란?정의LangGraph는 LangChain 위에 구축된 "상태 기반 유한 상태 머신(혹은 그래프) 프레임워크"로, LLM(대형 언어 모델) 중심의 워크플로우를 쉽게 구성하고 실행할 수 있게 해주는 도구다.간단히 말하면:복잡한 LLM 기반 로직을 “노드(Node)”와 “엣지(Edge)”로 연결된 그래프 형태로 설계하고 실행할 수 있게 해준다.LangGraph 의 탄생 배경 RAG 라는 강력한 기능을 갖게 된 우리는 한 번쯤 다음의 갈등을 마주한다LLM 이 생성한 답변이 Hallucination이 아닐까?RAG 를 적용하여 받은 답변이 문서에는 없는 "사전지식" 으로 답변한 건 아닐까?"문서 검색에서 원하는 내용이 없을 경우" -> 인터넷 혹은 논문 에서 부족한 정보를 검색하여 지식을 보강..

AI/LLM 2025.03.19

[WebSocket] WebSocket 이란? (Django Channels)

WebSocket우리가 REST, RESTful 하면서 들어본 HTTP 프로토콜처럼 웹소켓도 프로토콜의 한 종류이다.웹소켓은 HTTP 프로토콜을 기반으로 하는 양방향 통신 프로토콜 인데일반적인 HTTP 프로토콜은 한번 요청이 오면 서버에서 처리하고 응답을 하면 일련의 과정이 끝난것이다.하지만 웹소켓은 한번의 핸드셰이크(초기요청) 이후 통신이 계속 유지되며더보기핸드셰이크란? Handshake (HTTP Upgrade)클라이언트와 서버 간의 연결을 초기화 하는 과정우리가 익히 알고있는 POST, GET 처럼 OPTION 이라는 메서드로 HTTP 요청을 보낸다이때 헤더에 Upgrade: websocket과 Connection: Upgrade를 포함하며 HTTP연결을 웹소켓으로 업그레이드 하겠다는 의도를 전한다..

Project/AInfo 2025.03.14

[Celery] Celery 란?

Celery 란?공식 문서에선 Asynchronous Task Queue 라고 정의함즉 백그라운드에서 실행할 작업을 큐에 넣고, 비동기적으로 실행하는 분산 시스템이다. 주요특징비동기 작업 처리: 시간이 오래 걸리는 작업을 백그라운드에서 실행분산 처리: 여러 워커(worker)를 실행해서 작업 부하를 분산확장성: 여러 개의 작업을 동시에 처리 가능재시도 기능: 실패한 작업을 자동으로 다시 실행 가능 웹서버에선 오래 걸리는 작업을 동기적으로 실행하면 사용자가 오래 기달려야 한다.그래서 Celery 를 사용해 오래걸리는 작업을 백그라운드에서 실행시켜 빠른 응답속도와 높은 성능을 유지하는 것이다더보기백그라운드란?사용자가 직접 상호작용하지 않는 상태에서 실행되는 작업을 의미반대로 사용자가 직접 상호작용하는 작업은..

Project/AInfo 2025.03.06

[SMTP] 메일기능 활용

메일기능을 활용한 본인인증 및 비밀번호 재설정 이제 SMTP 가 무엇인지는 알았으니 이걸 이용해 여러 기능들을 구현할 차례이다 우선 메일기능을 활용해 여러 사이트에 있는 이메일 본인인증 기능을 구현 할 생각이다처음써보는 기능이라 당황했을테지만 어느사이트를 이용하든 이메일관련한 본인인증은 자주 사용되며 그만큼 레퍼런스가 많아 편하게 구현할 수 있을 것이라 생각할 것이다. 또한 Django 는 설계철학에 맞게 이메일을통한 본인인증 혹은 비밀번호 재설정이 자주쓰이는 기능이란걸 알고있어미리 로직을 구성해둬서 사용할 수 있게 해준다.Django의 기본 이메일 인증 및 비밀번호 재설정 기능1. 비밀번호 재설정 기능 (Password Reset)Django의 django.contrib.auth 앱에서는 아래와 같은..

Project/AInfo 2025.03.03

[SMTP] SMTP 란?

SMTP 가 뭔데?SMTP : Simple Mail Transfer Protocol이메일을 송신할때 사용하는 인터넷 표준 프로토콜 이다.이메일을 보낼때 서버 간의 통신을 담당하며,메일 클라이언트 -> 메일 서버로 전송하는 역할을 한다.항상 모든 용어는 그 어원을 이해해야 한다.Simple 한 Mail 을 Transfer 할때 사용하는 ProtocolSMTP 라는 용어자체를 우리프로젝트에서 처음 접하면본인인증을 할때 필요한 특수한 기능인가?이메일 관련 기능들을 모아둔 라이브러리 인가?이런 생각을 할텐데 SMT "P"이것도 프로토콜의 한 종류이다메일이란 기술이 처음 발명되던 시대에 메일을 주고, 받고 하기위해선서로 통신이 필요하단건 다들 아실거고통신할 때 이런식으로 해라!라고 만들어둔 규칙이라는 것이다.  ..

Project/AInfo 2025.03.02

플로우차트

플로우차트(Flowchart)플로우차트는 프로그램의 흐름이나 프로세스를 시각적으로 표현하는 다이어그램입니다.쉽게 말해, 어떤 일을 수행하는 과정(알고리즘)을 그림으로 나타낸 것입니다.  어떠한 일을 처리하는 과정을 간단한 기호와 도형으로 도식화 하여 여러 분야에서 프로세스나 문제분석, 기획, 설계, 문서 작성 등에 폭넓게 활용중이다. 프로그래밍 분야에서도 기획단계에서 로직구성을 위해 문서화하여 남겨두는데그 로직을 명확히 하기위해 통일된 기호와 도형을 사용하여 표시한다. 기준 : 국제표준기구(ISO, International Standardization Organization) 에서 지정한 기호와 흐름선을 사용플로우 차트의 규칙약속된 표준 기호를 사용한다순서의 흐름위에서 아래로왼쪽에서 오른쪽그외 : 화살표..

개발지식 2025.03.01

[LLM] LangChain 의 유용한 기능들

StreamingLangChain의 Streaming 기능은 대형 언어 모델(LLM)이 생성하는 응답을 한 번에 모두 출력하는 것이 아니라, 부분적으로 실시간 출력하는 기능을 의미합니다.즉, 사용자가 기다리지 않고, 모델이 생성하는 즉시 응답을 스트리밍(흐름) 방식으로 받아볼 수 있도록 합니다from langchain_openai import ChatOpenAIchat = ChatOpenAI(model_name="gpt-4o-mini")#chat.invoke("고양이에 대한 시를 써줘.") # 평소에 완성된 대답을 받던 함수 (invoke)for chunk in chat.stream("고양이에 대한 시를 써줘.") : print(chunk.content, end="", flush=True) 더보기imp..

AI/LLM 2025.02.28

[LLM] RAG

RAG 란?RAG 은 정보 검색과 생성 모델을 결합하여, 더 정확하고 풍부한 답변을 제공하는 AI 모델의 접근 방식입니다.이 방식은 정보 검색(retrieval)과 텍스트 생성(generation)을 결합하여,사용자가 질문할 때 모델이 외부의 문서나 데이터베이스에서 필요한 정보를 검색하고,그 정보를 바탕으로 자연스러운 텍스트를 생성하는 방식입니다. RAG 는 주로 기존의 생성형 모델들이 가지는 정보의 제한성을 해결하기 위해 만들어졌습니다.GPT같은 모델은 훈련 데이터에 포함된 정보만을 기반으로 답변을 생성하기 때문에그 이후에 발생한 정보나 훈련에 포함되지 않은 특정 세부 정보에 대해서는 잘못된 답변을 할 수 있습니다.RAG 동작방식문서 로딩문서로는 JSON, 이미지, 텍스트, CSV, PDF 등 다양한 ..

AI/LLM 2025.02.27

[LLM] LangChain (prompttemplate 과 LCEL)

LangChain 이란?랭체인(LangChain)은 대형 언어 모델(LLM)을 더 효과적으로 활용할 수 있도록 도와주는 프레임워크 이다단순히 LLM에 프롬프트를 입력하고 답변을 받는 방식에서 벗어나, 데이터 검색, 메모리 저장, API 연동, 체인(Chain) 구성 등을 가능하게 해 준다.랭체인의 기본요소프롬프트LLM랭체인의 기본은 LLM 에 프롬프트를 넣어주는 것이다써보면서 익히는게 빠르니 바로해보자 먼저 라이브러리 설치와 환경설정부터 한다pip install langchain-openaiimport osimport getpassos.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:")from langchain_openai import Chat..

AI/LLM 2025.02.19

[DL] 어텐션 (Attention)

어텐션(Attention)어텐션 메커니즘은 신경망이 입력 데이터의 특정 부분에 집중하도록 도와주는 기법이다.원래는 머신 번역에서 등장했지만, 지금은 자연어 처리(NLP)뿐만 아니라 컴퓨터 비전 등 다양한 분야에서 사용된다.어텐션의 주요 원리 쿼리(Query), 키(Key), 밸류(Value)입력 단어들은 각각 Key(K), Value(V), Query(Q)로 변환Query는 현재 출력 단어를 예측할 때 "어떤 입력을 참고해야 할까?"를 결정하는 요소Key는 입력 단어들의 특징을 나타내고, Query와 비교해서 연관성을 계산.Value는 최종적으로 참고할 입력 데이터어텐션 가중치 계산Query와 Key의 유사도를 계산해서 어텐션 가중치를 만든 후, Softmax를 적용해 확률 값으로 변환가중치가 높은 입력..

AI/DL 2025.02.16