본문 바로가기

분류 전체보기

(262)
금융 전문가 Agent - 오픈소스 FinRoBot (1) 금융 투자 관련 서비스에서는 정말 다양한 질문에 답변을 해줘야함  다양한 질문들을 어떤식으로 풀어나가야하나.. 하다가일단 이런식으로 접근을 좀 했다코딩을 하는데 손이 더 나가지 않음상당히 잘못됨을 느꼈기 때문임class QuestionClassifier: def __init__(self, llm: OpenAI, categories: List[str] = None): """ 질문을 카테고리로 분류하는 클래스를 초기화. :param llm: OpenAI LLM 모델 인스턴스 (LangChain 기반) :param categories: 분류할 카테고리 리스트 (기본값: 사전 정의된 카테고리) """ self.llm = llm ..
From RAG to AI Agent, 이론 적립(2) From RAG to AI Agent, 이론 적립(2)들어가기 전이 글은 기본적으로 Google's Agent Whitepaper 를 기본으로 하고 있습니다1. AI Agent 란? 에 대한 명확한 정의가 없는 것 같다.그럼에도 정의를 내리자면, 대규모 언어 모델을 사용하여 사전에 주어진 목표를 달성하기 위한 계획 및 행동(Acting)을 통해 주어진 목표를 달성하는 AI 시스템이다.AI와 AI Agent를 비유한 좋은 표현이 있어서 가져왔다 - 기존 모델이 좋은 에스프레소 머신이라면, 에이전트 기반 AI는 바리스타다- 바리스타는 커피를 만들 뿐만 아니라 손님을 맞이하고, 주문을 받고, 커피를 제공하고, 돈을 받고 컵도 씻는다아래는 뉴욕주민님이 만든 투자 에이전트 "theTerminalX"  https:..
From RAG to AI Agent, 이론 적립(1) From RAG to AI Agent, 이론 적립(1) 들어가기 전이런 뉴(?) 기술들을 공부할 땐, 역시 구글 검색이 더 좋은 것 같다.Perplexity 같은 엔진을 통해 공부하는 것도 좋지만,  글마다 다른 표현들, 조금씩 다른 설명 방식과 예시들도 공부가 되기 때문이다  RAG(Retrieval Augmented Generation, 검색 증강 생성) 란? 한 줄 요약RAG(검색 증강 생성)은 외부 소스(데이터)에서 가져온 사실을 이용해, 생성 AI 모델의 정확도와 신뢰성을 향상시키는 기술 예시를 보자아무리 똑똑한 ChatGPT라 해도, 내가 오늘 저녁에 먹은 메뉴까지는 알 수 없음.그래서 정확한 답변을 얻으려면, 최신 데이터가 담긴 식단표 DB를 보여줘함마치 시험 공부를 전혀 하지 않은 채, 오..
JWT(JSON Web Token) 으로 3행시 해보겠습니다 JWT(JSON Web Token)으로 3행시 해보겠습니다 J : 제이슨 웹 토큰이 W : 왜 중요한지 모른다면 T : 토킹 어바웃 JWT(Json Web Token) 이란 인증에 필요한 정보들을 암호화시킨 JSON 토큰 JWT는 세 부분으로 구성되고 .(점)을 구분자로 나누어지는 세 가지 문자열의 조합 세 가지 문자열? Header Payload Signature Header Header는 일반적으로 두 가지 정보를 포함 Header는 Base64URL로 인코딩 되어 생성 alg : 사용되는 암호화 알고리즘(HMAC SHA256, RSA) typ : 토큰의 타입을 나타냄. 일반적으로 "JWT" { "alg": "HS256", "typ": "JWT" } Payload(Claims) 실제 전달하고자 하는 ..
개발자가 사용자와 소통하는 방법(Nonetype object has no attribute write, pyinstaller) 개발자가 사용자와 소통하는 방법(Nonetype object has no attribute write, pyinstaller) 부제 : 오픈마켓 상품 정보 수집기 버그를 고치며.. 1. 사건 Pyinstaller를 이용해서 패키징 한 EXE 파일을 지인에게 전달하고, 또 다른 버그가 생겼다 하지만 내가 테스트할 때 발생하지 않은 버그라 당황했다. 2. 사용자 환경 문제 "사용자가 프로그램을 실행하는 환경이 뭐가 잘못된 건가?"라고 처음엔 생각했다. 사실상 최악의 접근방식이었다. 실행하는 환경에 상관없이 동작하도록 만들었어야 하는 것이지 사용자는 잘못 없다. 3. 원인 파악 먼저 Pyinstaller 도큐먼트에서 5.7 버전에서 Bugfix 내용을 확인할 수 있다 Pyinstaller Docs 설명 패키징..
Pyside6로 만든 EXE 파일을 수정하다 알게 된 것들 Pyside6로 만든 EXE 파일을 수정하다 알게 된 것들 최근에 Pyside6을 가지고 프로그램을 만들어서 지인에게 제공했다 쿠팡 상품 정보 수집기 -> 오픈 마켓 상품 정보 수집기 쿠팡 상품 정보 수집기 -> 오픈 마켓 상품 정보 수집기 로그인 로그인 기능 추가 DataBase는 Ncloud의 CloudDB를 사용 중 2. 카테고리 및 연관 키워드 수집 사용자의 엑셀 데이터를 입력받고 오픈 마켓별 junnyhi.tistory.com 하루뒤에 피드백이 왔는데 버그가 엄청 많았다. 그래서 버그들을 수정하면서 알게 된 것들을 기록으로 남기려고 한다. 1. Lazy initialization Pyside6을 사용해 EXE 파일을 만들고 실행하는 경우, 로드시간이 생각보다 오래 걸렸다 따라서 특정 객체의 초기..
NCloud API 배포 시, Usage Plan 적용하기 NCloud API 배포 시, Usage Plan 적용하기 NCloud를 사용해서 FastAPI 배포 시, 사용자 별로 사용량 측정 어떻게 하는지 궁금해서 찾아봤는데 아주 좋은 서비스를 제공하고 있더라.. Usage Plan 생성 2개의 Usage Plan을 만들었다 월 10회를 사용할 수 있는 홍길동 월 30회를 사용할 수 있는 김나박 API KEYS 각 사용자들이 사용할 수 있는 API KEYS 생성 그다음 Products 카테고리에서 방금 만든 API KEYS를 등록 그다음 배포할 Product 클릭해서, Usage Plan을 연결 (Usage Plan에서 Stage 선택을 할 수 있는 걸 나중에 발견했다) 그다음 API KEYS 버튼을 누르고 Stage 별로 Plan을 등록했다 월 1회만 사용가능..
VScode를 사용했더니 kswapd0 사용률이 100%?.. VScode를 사용했더니 kswapd0 사용률이 100%?.. API 배포를 위한 개발용으로 네이버 클라우드 플랫폼에 서버를 하나 두고 사용하고 있다 최근 들어 계속 아래 그림처럼, CPU랑 MEM 사용량이 100% 찍어 느려지거나 재부팅되는 현상이 발생됐다 그래서 Top 명령어 실행해두고 곁눈질로 모니터링하면서 업무를 하던 도중, kswapd0라는 놈을 잡아냈다 참고: WhaTap - 리눅스 free 명령어로 메모리 상태 확인하기 SWAP 스왑은 디스크의 일정 부분을 메모리 공간 부족 시 메모리 처럼 사용하기 위해 설정해 둔 공간으로, 커널은 메모리가 부족한 상황에서는 Buffer와 Cache로 할당된 것 중에 자주 사용되지 않는 것들을 비우고 메모리에 할당하려고 시도함 또한 메모리에 있는 데이터 중 ..