세계정복의주인장 (1184) 썸네일형 리스트형 [2] 챗봇 프론트 화면을 만들어보자. 이번에는 리액트로 간단한 채팅 창을 만들어보고 배포하려고 합니다.간단하게 챗GPT의 화면과 비슷하게 만들었습니다. 1. 리액트 코드 먼저, 프로젝트를 설정하기 위해 다음 명령어를 사용하여 새로운 리액트 애플리케이션을 생성npx create-react-app chat-appcd chat-app src/App.jsimport React, { useState, useEffect, useRef } from "react";import "./App.css";function App() { const [messages, setMessages] = useState([]); const [inputValue, setInputValue] = useState(""); const messagesEndRef = useRef(.. [1] 이력서 챗봇 만들기 - LLM 설정 및 서버 적용 1. 모델 선택 먼저 임베딩 모델을 선택해야 한다. 계속 써오던 multilingual-e5 모델을 다시 쓸까 했는데, 마침 새로운 모델중에서 한국어 수치도 좋은 것들이 많아서 새로나온 모델을 선택해봤다.아래는 최근에 만들어진 고려대학교의 모델이다. 오!! 괜찬은 성능이라 판단해서 해당 모델로 선택했다.https://github.com/nlpai-lab/KUREnlpai-lab/KURE-v10.526400.605510.605510.55784dragonkue/BGE-m3-ko0.523610.603940.603940.55535BAAI/bge-m30.517780.598460.598460.54998Snowflake/snowflake-arctic-embed-l-v2.00.512460.593840.593840.5.. 게임 거래소 아키텍처 설계 (전세계 검색기) https://www.youtube.com/watch?v=TYkQB2LZS3E 그냥 멍하니 유툽을 보다가 궁금해졌다.위에 나오는 아이템 검색기를 어떻게 구현했을까? (그것도 전세계 사용자들이 올린 아이템을 실시간으로 검색한다. 그것도 나라마다 언어가 다른데 검색이 된다???) 1. 문제일단 내가 세운 조건은 다음과 같다.- 엄청나게 많은 데이터를 저장할 디비(초당 1000개로 설정)- 아이템의 많은 속성들- 전세계에서 검색가능해야함 (실시간 아이템 검색이 아닌 약간의 지연 상관없음 - 아이템을 올린 후 1분후에 검색되도 상관없음)- 언어가 다르지만 검색되어야함 (4개국어로 설정) 검색시의 검색 필터값은 다음과 같다.아이템의 검색 조건은 이름과 성능 / 거래조건으로 나뉘며, 아이템의 이름은 하나뿐이지만 .. 벡터 표현과 HNSW 구현에 대해서는 다음 포스팅을 참조하세요 : https://uiandwe.tistory.com/1398 1. 벡터화 과정일반적으로 텍스트 데이터를 벡터로 만드는 과정은 다음과 같습니다. 1. 원천 데이터터에서 철자를 교정하고 불필요한 문자를 제거합니다. (소문자 변환, 토큰화, 특수문자 제거, 불용어 제거, 형태소 분석)2. 전처리 후 텍스트에서 단어 임베팅 값을 추출합니다. (다차원 공간의 특정 위치에 단어를 매핑합니다.)3. 임베팅 값은 벡터로 변환할수 있습니다. 벡터 차원의 특정한 특징에 중요도나 관련성을 반영합니다. 위의 과정을 통해 백터를 가지고 HNSW 알고리즘을 통해 벡터 사이의 근사값을 계산할 수 있습니다. 2. HNSWhttps://arxiv.org/pdf/1603.09320 고차원 .. postgreSQL CDC를 활용한 엘라스틱서치로 데이터 실시간 연동 전체 소스 : https://github.com/uiandwe/postgresSQL-to-es 만일 사용하는 디비가 postgreSQL이면서 실시간 데이터 검색 / 데이터 처리가 일반적으로 CDC를 활용해서 데이터를 필요한 곳으로 이관합니다. 물론, PostgreSQL은 강력한 기능과 안정성으로 널리 사용되는 데이터베이스이지만, 실시간 검색이나 데이터 처리를 위해 데이터를 효율적으로 연동할 필요가 있습니다. 특히 대규모 데이터 처리나 빠른 검색 응답이 요구되는 환경에서는 데이터를 엘라스틱서치(Elasticsearch)와 같은 검색 엔진으로 이관해 활용하는 것이 효과적입니다.이 과정에서 핵심 기술로 사용되는 것이 바로 CDC(Change Data Capture)입니다. CDC는 데이터베이스의 변경 사항을 .. postgreSQL wal_level postgreSQL의 wal_level은 기본으로 replica로 설정되어 있지만, CDC를 활용하여 다른 데이베이스에 저장하려하면 postgreSQL의 wal_level을 logical로 바꿔야만 동작합니다.왜 그냥 하면 안되지? 하는 마음에 wal_level에 대해서 정리해보았습니다. 1. WAL (Write-Ahead Logging)과 wal_levelPostgreSQL의 WAL은 데이터베이스 변경 사항을 로그에 기록하여 데이터 복구와 복제를 지원합니다.wal_level은 WAL 데이터를 어떤 수준으로 기록할지를 제어하며, PostgreSQL은 다음 세 가지를 제공합니다.minimal: WAL 로그를 최소 수준으로 기록. 데이터 복구를 위한 최소한의 정보만 포함.replica: WAL 로그에 데이.. kafka를 이용한 서버 아키텍처 구현 저번 글에 이어서 kafka를 이용해서 구현해 보겠습니다. (지난번 포스팅 : https://uiandwe.tistory.com/92183 )큐 역활을 했던 redis 대신 kafka를 사용하는 이유는 대용량 메시지처리와 함께 팬아웃(갑작스런 대규모 요청) 등을 빠르고 안전하게 서비스 하기 위해 kafka를 사용합니다. 단점으로는 kafka를 운영하는 시간과 filaover 지점이 늘어나게 됩니다. 주요 구성 요소FastAPI 웹 서버: 요청을 받아 작업을 kafka 토픽에 넣습니다.kafka: Queue 역할을 합니다.Worker: 토픽에서 작업을 가져와 처리합니다. 처리 완료확인을 위해 redis에 데이터를 넣습니다.redis : 캐시 역활 Kafka는 메시지를 처리한 후 상태를 저장하는 기능이 기.. redis pub/sub을 이용한 서버 아키텍처 구현 Pub/Sub(발행-구독) 아키텍처는 비동기적 데이터 흐름과 확장성이 필요한 상황에서 주로 사용됩니다.일반적으로 다음의 상황들에 적용하게 됩니다.- 이벤트 기반 시스템 ( 이메일/푸시 알림 , 데이터 실시간 업데이트)- 마이크로서비스 간 통신 (주문 처리 시스템, 사용자 인증)- 스트리밍 데이터 처리- 데이터 동기화- 장애 복구 및 재처리 (결제 시스템)- 확장 가능한 비동기 작업 처리 ( 백그라운드 처리 ) 이번 예제에서는 Redis와 Python의 FastAPI를 사용하여 비동기 웹 서버를 만들고 관리하는 설정을 구성할 수 있습니다. 아래는 전체적인 구성 예제입니다.주요 구성 요소FastAPI 웹 서버: 요청을 받아 작업을 Queue에 넣습니다.Redis: Queue 역할을 합니다.Worker: R.. 이전 1 2 3 4 ··· 148 다음