| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- DATAPATH
- web
- react
- computer
- instruction
- for
- github
- architecture
- Linux
- html
- MIPS
- openai
- Rag
- control
- DB
- XML
- python
- Java
- Algorithm
- function
- mysql
- javascript
- AI
- php
- DS
- CSS
- Pipelining
- system
- data structure
- Class
- Today
- Total
목록openai (16)
Rosie
LangChain과는 또 다른 LangGraph!! LangChain은 LLM 앱 만드는 프레임워이고,LangGraph는 그 앱 실행의 흐름을 유연하게 제어하는 프레임워크입니다!! LangGraph를 알아볼까요? StateLangGraph에는 상태라는 State라는 변수가 존재합니다.상태는 그래프에서 처리하는 데이터의 기본 구조를 정의하고 있고,각 상태는 다른 상태에 의해 덮어쓰기(override) 될 수 있어 데이터를 유연하게 관리할 수 있어요from typing import TypedDict # langGraph에서 상태를 넘김# 상태 정의 (Global variable이라고 생각하면 편함)class State(TypedDict): # TypedDict 클래스에서 상속받아 정의, St..
AGENT란???대규모 언어 모델의 의사결정 엔진으로 사용하여 작업을 수행하는 시스템이래요모델은 입력된 데이터를 분석하여 맥락에 맞는 의사결정을 수행합니다.적절한 해결책을 제시해 복잡한 작업을 자동화하여 업무 효율성을 높입니다. AgentExcutor에이전트이 계획-실행-관찰 사이클을 자동으로 관리해줍니다.에이전트의 행동을 모니터링하고 결과를 반환해줘요!! @tool 데코레이터를 통해 LLM이 호출 가능한 커스텀 도구를 정의해줍니다@tooldef calculate(expression: str) -> float: """수학 계산을 수행합니다""" return eval(expression) @tooldef get_weather(city: Literal["서울", "부산", "대구", "인천", "..
일학년 코딩 수업 때 교수님께서 함수 위에 있는 @tool은 그냥 무시하고 넘어가~~이런 말을 들은 적이 있었던 거 같은데 그 tool이 @tool인건가!!!tool calling은 LLM이 답변을 주는 것이 아니라, (필요할 때) 외부 도구나 함수를 직접 호출해서 결과를 가져오는 방식이에요!! LLM이 어떤 것을 쓸지 판단을 합니다예를 들어 "계산기를 써야겠다" 또는 "DB를 검색해야겠다"처럼 필요한 도구를 선택하고, 정해진 함수 포맷으로 호출 → 함수 실행 → 결과받아서 계속 대화이러한 흐름으로 흘러갑니다 그러면 여기서 함수 밑에 @tool이라고 왜 쓰는가???????????/@tool은 파이썬의 데이레이터인데 함수가 LangChain에서 도구(tool)임을 인식하게 만들기 위해서 사용한다!!입니..
재순위화(Re-rank)란 무엇인가 ,,, ?검색 결과를 다시 평가해 최적 순서로 재정렬하는 기술이라네요!! * 재순위화는 검색 결과를 재분석하여 최적의 순서로 정렬하는 고도화된 기술이며,* 이중 단계 프로세스로 기본 검색 후 정교한 기준으로 재평가를 진행하며,1. 기본 검색 알고리즘으로 관련 문서 찾고,2. 더 정교한 기준으로 이들을 재평가하여 최종 순위를 결정* 사용자의 검색 의도에 맞는 정확한 향상을 통해 검색 품질을 개선하고,* 검색 결과의 품질을 높이기 위한 체계적인 최적화 방법론이라고 볼 수 있습니다!! 재순위화 방식에는 3가지가 존재합니다.1) Pointwise* 문서 하나씩 독립적으로 점수 계산을 하고 점수 높은 순서대로 정렬합니다 * 단점: 문서 간 상대 비교가 약함Ex) 각 문서의 ..
RAG는 사용자의 질문을 검색기로 찾은 문서를 LLM이 답변을 생성해서 유저에게 보여줍니다.이때 사용하는 검색기!!에 다양한 종류가 있습니다! 1) 의미론적 검색(Semantic Search) [MAC] 의미론적 검색(Semantic Search)을 기반으로 한 RAG 살펴보기RAG는 사용자의 질문을 검색기로 찾은 문서를 LLM이 답변을 생성해서 유저에게 보여줍니다.이때 사용하는 검색기!!에 다양한 종류가 있습니다! 1) 의미론적 검색(Semantic Search)2) 키워드 검색 (Keywordyyyeji.tistory.com2) 키워드 검색 (Keyword Search)3) 하이브리드 검색 (Hybrid Search) [MAC] 하이브리드 검색(Hybrid Search)을 기반으로 한 RAG 살펴보..
RAG는 사용자의 질문을 검색기로 찾은 문서를 LLM이 답변을 생성해서 유저에게 보여줍니다.이때 사용하는 검색기!!에 다양한 종류가 있습니다! 1) 의미론적 검색(Semantic Search)2) 키워드 검색 (Keyword Search) [MAC] 의미론적 검색(Semantic Search)을 기반으로 한 RAG 살펴보기RAG는 사용자의 질문을 검색기로 찾은 문서를 LLM이 답변을 생성해서 유저에게 보여줍니다.이때 사용하는 검색기!!에 다양한 종류가 있습니다! 1) 의미론적 검색(Semantic Search)2) 키워드 검색 (Keywordyyyeji.tistory.com3) 하이브리드 검색 (Hybrid Search) [MAC] 하이브리드 검색(Hybrid Search)을 기반으로 한 RAG 살펴보..
간단한 형태의 RAG 모델로,외부 문서(지식베이스)에서 정보를 검색하고,그 정보를 기반으로 답변을 생성하는 방식으로 코드를 구현해보겠습니다!! 문서 임베딩 및 저장: 문서들을 임베딩 벡터로 변환해 저장질문 임베딩: 질문을 임베딩벡터로 변환검색(Retrieval): 질문 벡터와 문서 벡터 간 유사도를 계산해 가장 관련 있는 문서 선택생성(Generation): 선택된 문서를 참고하여 답변 생성 약간의 Naive RAG 개념을 요약해봤고 진짜 코드를 구현해봅시다!1) 벡터 저장소 로드from langchain_chroma import Chromafrom langchain_openai import AzureOpenAIEmbeddings# OpenAI 임베딩 모델 생성embeddings_openai = Az..
RAG란?검색(Retrieval)과 생성(Generation)을 결합해, LLM이 더 정확하고 최신 정보로 답변하게 하는 방식입니다! RAG 개념 알아보기RAG란 무엇일까요??Retrieval-Augmented Geteration의 줄임말이며,LLM의 한계를 보완하기 위해 외부 지식 베이스에서 정보를 검색(Retrieval)해서 그 정보를 바탕으로 텍스트를 생성(Generation)하는 방식입니다!yyyeji.tistory.com↑↑↑ 더 자세히 알아보고 싶다면 ↑↑↑ 코드만 살짝 들여다보겠습니다!retriever = chroma_db.as_retriever( # 검색기 search_kwargs={"k": 2},)query = "탄소 제로 정책에 대해서 알려줘"retrieved_docs ..