🚀 FastAPI 기반 로컬 LLM + RAG 챗봇 만들기 – FastAPI 프로젝트 구조 및 설정이 글에서는 FastAPI 프로젝트 구조를 설계하고, 환경 변수 설정과 PostgreSQL 연결을 설정하는 과정을 다룹니다.✅ 프로젝트 폴더 구조 → .env 설정 → PostgreSQL 연결 → FastAPI의 Dependency Injection 활용 순서로 진행됩니다.📌 1. FastAPI 프로젝트 폴더 구조 구성FastAPI 프로젝트의 구조를 체계적으로 구성하면 유지보수와 확장성이 쉬워집니다.다음과 같은 폴더 구조를 사용합니다.fastapi-llm-chatbot/│── app/│ ├── api/ # API 라우터 관리│ │ ├── v1/│ │ │ ├..
🚀 FastAPI 기반 로컬 LLM + RAG 챗봇 만들기 – Python 및 필수 라이브러리 설치FastAPI를 활용하여 로컬 LLM + RAG 챗봇을 개발하기 위해 필요한 Python 환경 및 필수 라이브러리를 설치하는 과정을 다룹니다.📌 1. Python 설치 및 환경 설정✅ 1️⃣ Python 버전 확인 및 설치FastAPI 및 LangChain을 사용하려면 Python 3.8 이상이 필요합니다.아래 명령어로 Python 버전을 확인하세요.python --version✅ Python이 설치되지 않은 경우공식 사이트에서 최신 버전을 다운로드하여 설치하세요.✅ Python이 이미 설치된 경우최신 버전으로 업데이트하려면:python -m ensurepip --default-pippython -m p..
FastAPI 기반 로컬 LLM과 RAG를 활용한 챗봇 개발 소개최근 ChatGPT와 같은 대규모 언어 모델(LLM)의 등장으로 챗봇 기술은 비약적으로 발전했습니다. 하지만 클라우드 기반 서비스는 개인정보 보호나 보안상의 이유로 활용이 제한될 수 있습니다. 이런 상황에서 로컬 환경에서 LLM을 구동하는 챗봇은 강력한 대안으로 떠오르고 있습니다.본 시리즈에서는 FastAPI, Ollama, LangChain, PostgreSQL + pgvector를 활용하여 완벽한 로컬 환경에서 구동되는 LLM 기반의 RAG(Retrieval-Augmented Generation) 챗봇을 직접 구현하는 방법을 단계별로 소개합니다.📌 주요 기술 스택 소개FastAPIPython 기반의 빠르고 효율적인 API 개발 프레임워..
0. Intro 최근 프로젝트를 진행하면서 단어 정리나 용어 정의를 공공데이터 공통표준용어에 맞춰 하는일이 생겼다. "공공데이터 공통표준용어"는 행정안전부고시 제2020-42호 를 보면 " 공공데이터를 누구나 같은 의미로 이해하고 같은 방식으로 사용할 수 있도록 공통표준용어를 정의함"이라고 나와있다. 기존에는 공공데이터 포털에서 제공하는 엑셀 파일에서 필요한 부분을 "찾기"를 통해서 검색해서 사용했는데, 이 데이터를 바탕으로 검색을 좀 더 수월하게 하는 웹페이지를 만들면 어떨까 싶기도 하고 최근에는 JAVA와 Oracle로만 프로그래밍을 하다보니 python과 mariaDB에 대한 기억도 가물가물해지는 감도 있어서 작은 개인 프로젝트로서 진행해 보면 어떨까 싶어 시작하게 되었다. 1. 요구사항 이 프로젝..

1. 현재 Linux 버전 확인 2. python download wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz 2-1 패키지 설치sudo apt install libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev libtk8.6 libgdm-dev libdb4o-cil-dev libpcap-dev 3. 압축 풀기tar -xvf Python-3.10.13.tgz 4. 이동cd Python-3.10.13/ 5. Configure./configure 5-1 . Error : configure: error: no acceptable C compiler found in $PATH sudo a..
Flutter 1.Shell Scripts flutter doctor flutter upgrade flutter devices flutter create flutter run -d Python 1. 딕셔너리 합치기 dict1 = {'a': 1, 'b': 2} dict2 = {'c': 3, 'd': 4} dict3 = {**dict1, **dict2} print(dict3) 정리 서버와 클라이언트는 컴퓨터 네트워크에서 상호작용하는 두 가지 주요 구성 요소입니다. 서버는 네트워크 상에서 서비스를 제공하는 컴퓨터 또는 프로그램입니다. 일반적으로 클라이언트에서 요청이 발생하면, 서버는 이를 받아서 처리한 후 응답을 보내줍니다. 서버는 다양한 역할을 수행할 수 있습니다. 예를 들어, 파일을 저장하고 제공하는 파일..
class F1Score(tf.keras.metrics.Metric): def __init__(self, name='F1Score', **kwargs): super(F1Score, self).__init__(name=name, **kwargs) self.f1score = self.add_weight(name='F1Score', initializer='zeros') self.count = self.add_weight(name='F1ScoreCount', initializer='zeros') def update_state(self, y_true, y_pred, sample_weight=None): y_true = tf.cast(y_true, tf.bool) y_pred = tf.cast(y_pred, tf...
개요 개발할때 필요한 이름이 들어간 데이터를 빈번히 수동으로 입력하는 불편함을 해소 하기위한 방법을 고민하던중 첫번째로 이름을 무작위로 생성하는 시뮬레이터를 만들어보기로 했다. 전자가족관계등록시스템에서 제공하는 통계데이터를 활용하였다. 이름의 경우 서울특별시를 기준으로 2008년,2012년,2022년 , 3년도의 데이터를 다운로드받아 사용하였다. 상위 출생신고 이름 현황 링크 가족관계등록부상 성씨 현황 링크 github 링크 1. 개발환경 세팅 OS : window 64bit python 3.10.x Editor : vscode + python extention python-packages : pandas 1. 디렉토리 만들기 먼저 디렉토리 및 파일들을 만들어 주겠습니다. simulator 라는 최상위 ..
Decorator Example Code Overview 백엔드 서버에서 특정 URL 에 접속을 할 때 잘못된 경로 접속 또는 로그인 유무, Not Found Page 등 중간에서 처리를 해야할 경우가 있다. 이때 파이썬에서 제공하는 Deacorator를 사용하여 구현할 수 있으며, 간단한 코드로 정리를 했다. 참고 사이트 : Flask Dacorator Login Require Decorator def login_required(f): @wraps(f) def decorated_function(*args, **kwargs): if session.get('유저 아이디', None) is None: return redirect(url_for('리다이렉트 URL 또는 라우팅 함수 이름')) return f(..
- Total
- Today
- Yesterday
- Docker
- nodejs
- 리액트
- github
- kotlin
- rag
- 로컬LLM
- fastapi
- 페이지
- 챗봇개발
- Webpack
- LangChain
- babel
- Next.js
- Page
- Ktor
- 프론트엔드
- REACT
- PostgreSQL
- 개발블로그
- llm
- 웹개발
- til
- 백엔드개발
- nextJS
- Project
- 백엔드
- Python
- AI챗봇
- 관리자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |