목록분류 전체보기 (25)
젊은이의 블로그
본 글은 2026년 1학기 캡스톤디자인과창업프로젝트B 21팀 봉원아사랑해의 '태아보험 특약 선택과 보장 범위 이해를 위한 산모 맞춤형 RAG 기반 보험 분석 서비스'의 개발과정 중 AI 파트의 RAG 서비스 개발 과정에 대해서 작성한 글이다.그 중에서도 1. 보험 약관/상품요약서를 JSON 데이터셋으로 구조화하여 사전 데이터셋 구축2. FAISS 벡터 검색으로 관련 문서 조각 검색3. 여러 LLM(OpenAI/Gemini/Claude) 답변을 병렬 생성4. RAGAS로 답변 품질을 점수화해 최종 후보 선택에 대해서 작성했다.전체 코드는 아래 2개의 링크를 통해 확인할 수 있다. (프로젝트 코드로 가는 링크!)https://github.com/BWLOVERS/docshttps://github.com/BWL..
(해당 글은 아래의 강의를 공부하면서 작성하였다.) 프로젝트로 배우는 Python 챗봇 & RAG - LangChain, Gradio 활용| 판다스 스튜디오 - 인프런 강의현재 평점 4.8점 수강생 415명인 강의를 만나보세요. 파이썬 기본 문법과 라이브러리를 활용해서 나만의 AI 챗봇을 직접 만들어 보세요. PDF 문서 기반의 RAG 등 5개의 프로젝트를 단계별로 수행하고www.inflearn.com섹션2. 나만의 ChatGPT 만들기(간단한 QA 챗봇)[파이썬 패키지 버전 오류 수정 방법]1. toml 파일 수정requires-python = ">=3.11, 2. 터미널에서 가상환경 파이썬 버전 맞추기poetry env use python3.11 # 없으면: brew install python@3..
Hashing 이란?- 다양한 길이의 key 값을 hash function에 input으로 넣어서 고정된 길이(0,1,2,.... M-1, M=데이터가 저장된 hash table의 크기)의 output (hash value, h(key))으로 변환하는 작업 - key 값에 해당하는 데이터가 저장/탐색되는 위치(index)를 알아내기 위해 사용됨. → Sorting과 searching이 모두 O(1)에 가능한 구조이다.Hash 함수의 충돌서로 다른 탐색 키를 갖는 항목들이 같이 해시 주소를 가지는 현상→ 충돌이 발생하면 해시 테이블에 항목 저장 불가능 충돌 해결책→ chaining 체이닝→ open addressing 개방 주소법Chaining 체이닝버킷 내에 연결 리스트를 할당하여 삽입과 삭제를 진행..
(Chap.13 ) SearchSequential search(순차탐색)는 O(n)으로 탐색알고리즘의 하한선에 해당하는 알고리즘임.정렬된 배열을 이용한 Binary search 는 정렬하는 complexity를 제외한다면 O(logn)으로 순차탐색 보다 성능이 좋음. 정렬된 배열을 이용한 Indexed sequential search는 기정렬된 주자료에서 (n/m) x i, i = 0, 1, 2, ... 번째 record들로 구성한 index table을 만들고 index table을 우선적으로 탐색하고 실패하면 index table의 연속된 두 엔트리 사이에 해당하는 주자료 테이블 내용을 검색하는 방식임. index table 크기(m)이 커지면 index table에서 탐색이 실패할 경우 원본 d..
Chapter 12. Sortingstable한가? in-place인가? 움직인 위치가 최종 위치인가? 데이터들을 특정순서(Decreasing order, Non-increasing order, Increasing order, Non-decreasing order)로 정리하는 것.데이터들의 searching, analyzing, manipulating 을 효율적으로 수행할 수 있게 하여 IT 분야에 기본적이며 필수적인 연산(알고리즘)임.모든 경우에 최적인 정렬 알고리즘은 없으므로 정렬의 대상과 정렬을 실행할 환경에 따라 아래의 상황을 고려하여 알고리즘을 선택해야함.정렬할 대상의 개수 (dataset의 크기)는?정렬할 대상의 일부가 이미 정렬되어 있을 수도 있나?필요한 (비교연산과 이동연산을 포함한) 수행..
9-1 문제 해결 과정[알고리즘 개발 과정]문제의 이해예외 경우, 해답 생각해보기설계 방향 설정순차적 처리 / 병렬적 처리, 최적해 / 근사해근사해: 정확한 해를 구할 수 없음. 계산량이 너무 많아짐. 알고리즘의 중간단계.알고리즘 설계억지(brute-force)기법, 탐욕적(greedy)기법, 분할 정복, 동적 계획법, 공간으로 시간을 버는 전략, 백트래킹과 분기한정 기법알고리즘의 정확성다양한 입력을 통해 틀린 경우를 찾기, 수학적 귀납법 등으로 증명하기알고리즘의 구현정확성 입증 후 특정 프로그래밍 언어로 구현하기9-2 억지 기법 (brute - force)순차탐색: 처음부터 마지막까지 순서대로 리스트에서 어떤 킷값을 가진 레코드를 찾는 방법선택정렬: 숫자를 크기순으로 나열9-3 탐욕적 기법 (gree..
8-1 그래프란?그래프는 연결되어 있는 객체 간의 관계를 표현하는 자료구조이다. 그래프는 G = (V, E)로 표시한다.|v| = 총 정점의 개수, |E| = 총 간선의 개수정점 = vertax, node간선 = edge, link|V| > 0, |E| >= 0 (정점은 1개 이상 있어야 한다.)[그래프 용어]인접 정점: 하나의 정점에서 간선에 의해 직접 연결된 정점정점의 차수: 그 정점에 연결된 간선의 수 (외차수, 내차수)경로(path): 간선을 따라갈 수 있는 길을 순서대로 나열한 것단순 경로(simple path): 경로 중에서 반복되는 노드가 없는 경로사이클(cycle): 경로의 시작 정점과 종료 정점이 동일한 경로단순 사이클(cycle): 시작 정점과 종료 정점이 동일하고, 반복되는 노드가..
1260 DFS와 BFS 1920 수 찾기 11724 연결 요소의 개수 2343 기타 레슨1260 DFS와 BFS그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 첫째 줄에 DFS를 수행한 결과를,..
순차 탐색리스트 안에 있는 특정 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법→ 데이터의 개수가 N개일 때 최대 N번의 비교 연산이 필요하다. → 시간복잡도는 O(N)하늘바다바나나포도확인 하늘바다바나나포도 확인 하늘바다바나나포도 확인, 성공 # 순차 탐색 구현def sequential_search(n, target, array): # 각 원소를 하나씩 확인하며 for i in range(n): # 현재의 원소가 찾고자 하는 원소와 동일한 경우 if array[i] == target: return i + 1 # 현재의 위치 반환(인덱스는 0부터 시작하므로)# 탐색하고자 하는 리스트fruit = ["apple", "bana..
보호되어 있는 글입니다.