1. Intent(의도)란?- AI가 사용자의 의도를 이해하는 과정- 사용자가 챗봇이나 AI 시스템과 상호작용할 때 전달하려는 목적이나 의미를 말한다.- 예: 날씨 알려줘 → 날씨 조회, 맥주 추천해줘 → 맥주 추천, 오늘 할 일 추가해줘 → 일정 추가 2. Slot(슬롯)이란?- Intent를 수행하는데 필요한 추가적인 정보(속성)- 예: 내일 서울 날씨 알려줘 → Intent: 날씨 조회, Slot: 서울(위치), 내일(날짜) 3. 가드레일이란?- AI가 의도와 관계없이 안전하고 적절한 응답을 보장하는 과정- 가드레일은 ai 서비스에서 비정상적이거나 원하지 않는 응답을 방지하는 기법(안정장치)- 예: 부적절한 응답 차단(욕설, 혐오 등), 비즈니스 정책 준수, 잘못된 정보 방지(신뢰할 수 없는 정보 ..
1. 벡터 임베딩이란?- 텍스트, 이미지, 오디오 등 다양한 데이터를 고차원 공간의 연속적인 수치 데이터로 변환하는 과정- 데이터의 특징이나 의미를 수치로 표현하여 기계가 이를 쉽게 처리할 수 있도록 만드는 것이 목적 1) 자연어 처리(NLP)에서 벡터 임베딩- World2Vec, GloVe, BERT와 같은 모델을 사용해 벡터로 변환함으로써 문맥적 유사도 및 의미적 관계를 파악- 자연어는 컴퓨터가 직접 이해할 수 없어서 단어, 문장, 문서를 벡터로 변환해야 한다. - World2Vec(2013) : 단어 간의 문맥을 학습해 의미가 유사한 단어를 가까운 벡터로 매핑하는 방식단어간 유사도를 벡터 연산으로 구할 수 있다.CBOW: 주변 단어를 보고 중심 단어를 예측하는 방식Skip-gram: 중심 단어를 보..
1. DB연결 - db의 경우, 요청마다 새 세션을 생성하는 것이 일반적이다. 이렇게 하면 각 요청이 독립적인 트랜잭션을 갖게 되어, commit, rollback, 세션 종료 등을 개별적으로 처리할 수 있다. 따라서 yield를 통해 요청마다 새로운 세션을 제공한다. 1) DB 엔진이란?- 실제 db와 통신하는 역할, db와의 물리적 연결(예: TCP 연결, pool)을 관리하고, 내부적으로 연결 풀을 운영하는 객체: SQLAlchemy의 create_engine, create_async_engin 2) DB 세션이란?- DB 엔진 위에서 동작하는 작업 단위(유닛 오브 워크), ORM이 객체의 상태를 추적하고, 여러 쿼리를 하나의 트랜잭션으로 묶어 commit이나 rollback할 수 있도록 관리: 연..
React로 개발 후 Nignx로 배포 할 경우, Dockerfile의 멀티 스테이지를 이용하면 Docker 이미지 용량을 줄일 수 있다.를Node.js는 React 앱을 빌드할 때 필요한데, 배포 단계에서는 빌드 후 생성된 결과물만 필요하므로, Node.js가 필요없어진다. # Step 1: Build (빌드 단계)FROM node:18 AS builder # Node.js 환경을 builder라는 이름으로 설정WORKDIR /app # 작업 디렉토리 설정COPY package*.json ./ # package.json 복사RUN npm install # 의존성 설치COPY . . ..

1. 브레이크 포인트란?- 디버깅할 때 코드의 특정 지점에서 프로그램 실행을 멈추게 하는 표시 1) 브레이크 포인트가 왜 필요할까?- 문제의 원인을 정확히 찾기 위해- 변수 값이 예상한 대로 변하는지 상태 확인- 코드가 의도한 순서대로 실행되는지 코드 흐름 이해 2) 브레이크 포인트를 잘 잡는 법- 에러 발생 직전 위치에 설정- 중요한 조건문 앞에 설정- 함수의 시작 부분에 설정 : 함수의 인자 값이나 초기상태를 확인하고 싶을 때- 변수 값이 바뀌는 부분에 설정- 에러 메시지와 관련있는 부분에 설정 3) 팁- 처음부터 너무 많은 브레이크 포인트를 걸지 말고, 문제와 관련된 부분에만 선택적으로 설정- 브레이크 포인트를 걸고 하나씩 확인하면서 점점 좁혀나가기 4) vscode에서 브레이크포인트 설정하는 법*..
에이전트 구동 시간이 너무 오래걸려, 디버그를 위해 쿼리 파라미터를 추가해, 해당 파라미터가 있을 경우에는 에이전트를 호출하지 않고 사전에 정의해둔 데이터를 반환하게 했다. 1. type형식- FastAPI에서는 쿼리 파라미터는 문자열(str)로 전달됨- debug=True라고 해도, debug는 "True"문자열일 가능성이 있음@router.post("/cafe")async def get_cafes( user_input: TravelPlanRequest, prompt: Optional[str], debug: Optional[bool] = False, # 기본값 False redis_client: Redis = Depends(get_redis)): if str(debug).l..
1. redis 연결import redis# Redis 클라이언트 생성r = redis.Redis(host='localhost', port=6379, db=0)# 연결 테스트print(r.ping()) # True가 출력되면 정상 연결 2. 문자열 데이터1) 저장: setr.set("mykey", "hello")2) 조회: get- get은 바이트 데이터를 반환해, decode("utf-8")로 문자열 변환value = r.get("mykey")print(value.decode("utf-8")) # hello3) 데이터 삭제: delr.delete("mykey")4) 만료 시간 설정: expirer.set("temp", "temporary")r.expire("temp", 10) # temp 키를 1..
카페를 추천해주는 멀티 에이전트를 구현했는데, 자료를 검색하고 선택을 하는 과정이 많지만, 마지막에 추천해주는 결과만 저장하기가 아까웠다. 그래서 에이전트를 중간에 나눠서 그동안 찾은 자료들을 redis에 저장하기로 했다.Redis는 Set & Tag 구조를 사용할 수 있어서 다중 키워드 검색이 용이하다. 1. Redis의 Set이 SQL보다 빠른 이유1) MySQL과 같은 관계형 데이터베이스에서는 WHERE 조건을 만족하는 행을 찾기 위해 테이블을 조회해야 한다.조건이 여러개(OR)일 경우, 테이블 전체를 스캔할 수 도 있어, 데이터가 많아질수록 성능 저하가 일어날 수 있다.O(n)이상2) Set은 해시 테이블을 기반으로 동작하기 때문에, 특정 키를 검색할 때 O(n) 이하의 속도를 가진다. 2. My..
- Total
- Today
- Yesterday
- 영어회화
- 티스토리챌린지
- ChatGPT
- IH
- 갓생
- 줄넘기
- opic
- 뉴스
- Ai
- 경제
- 실기
- 스크랩
- 미라클모닝
- 아침
- 아침운동
- 기초
- SQL
- 습관
- 운동
- 루틴
- 다이어트
- Python
- 프로그래머스
- 오픽
- 빅데이터 분석기사
- llm
- 30분
- 고득점 Kit
- 오블완
- C언어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |