🚀 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(..

세상에는 정말 많은 언어 들이 있습니다. C / C++ ,JAVA, Python,Ruby, Go,Rust 등등등 GitHub의 Pull Request(2021.3 분기 ) 언어 랭킹 순위를 보면 Javascript 다음으로 Python 이 2위에 랭크되어있습니다. 그만큼 많이 쓰이고 있다는 것이겠죠? 언어의 선택은 언제나 고민이 되는 부분입니다. 감사하게도, 저는 처음 배운 언어로 업무를 대부분 하고 있습니다. 하지만, 다른 언어들 또한 사용하기때문에 1가지 프로그래밍 언어만 사용한다고 볼 수는 없겠네요. 그럼 왜 이렇게 Python 이라는 언어는 인기가 많은 것일까요? 여러 이유들이 있겠지만, 제 개인적인 생각은 프로그래밍 언어 중에서는 배우기에 가장 쉽다. 인것 같습니다. 또한 많은 라이브러리들이 있..
- Total
- Today
- Yesterday
- 프론트엔드면접
- 프론트엔드
- 개발블로그
- rag
- Webpack
- gatsbyjs
- Python
- nextJS
- 관리자
- Ktor
- 웹개발
- 파이썬 알고리즘
- PostgreSQL
- App Router
- SEO최적화
- llm
- nodejs
- kotlin
- 백엔드개발
- LangChain
- AI챗봇
- REACT
- Docker
- Next.js
- NestJS
- fastapi
- github
- CI/CD
- Prisma
- seo 최적화 10개
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |