분류 전체보기 178

langchain, openai 활용하여 응답 생성하기 (두번의 invoke, history를 이용하여 대화의 흐름 유지)

chat_router.pyfrom domain.ai.service import chatclass Message(BaseModel):    role: Union[str, None] = None    content : str    session_id : str@router.post("lang-chain")def chat_request_by_lang_chain(message: Message):    return chat.chat_completion_by_lang_chain(session_id = message.session_id, message=message.content) chat.pyfrom langchain_core.prompts import ChatPromptTemplate, MessagesPlaceh..

노드, 클러스터, 쿠버네티스, 로드밸런싱 관련 설명

node, cluster, k8s .. 한마디로 정의하자면!클러스터는 노드의 집합이며, 쿠버네티스는 이러한 클러스터를 관리하고 운영하는 도구라고 할 수 있다. 클러스터 (Cluster)- 여러 서버나 노드를 그룹화하여 하나의 시스템처럼 작동하도록 구성한 것- 클러스터를 통해 애플리케이션의 가용성과 확장성을 높일 수 있음.- 일반적으로 클러스터는 로드밸런싱, 내결함성, 장애조치 등 기능을 제공한다.- 클러스터 내의 모든 노드는 협력하여 작업을 수행하고, 문제가 발생할 경우 다른 노드가 이를 이어받아 작업을 계속 함 노드 (Node)- 클러스터 내의 개별 컴퓨터나 서버를 의미함.- 각 노드는 자원을 제공하며, 일반적으로 cpu, 메모리, 저장소와 같은 컴퓨팅 자원을 포함한다.- 워커노드(worker node..

(ktds) 24.08.05 ~ 2025.01.03

[생성형AI] conflunence 데이터를 바탕으로 chatgpt 직접 구현해보기 (1편)

confluence 데이터를 바탕으로 chat gpt 직접 구현해보려고 한다. [구성]1편 : confluence API 를 활용하여 데이터 저장하기 ( store )2편 : 벡터db에 저장해놓은 데이터 업데이트하기 ( update )  개발환경 : vscode, python, fastapi, vectorDB domain > ai > router > knowledge_router.py from fastapi import APIRouterrouter = APIRouter(    prefix = "api/knowledge")@router.post("/kms/store")def store_kmsdata_vectordb(collection_name: str, space_name:str, limit_number:..

[독서] ”이펙티브자바 3편“ 6일차

#코딩 #개발자 #객체지향의사실과오해 #개발자필독 #도서리뷰 Assignment #6 📚 2장. 객체 생성과 파괴 ✔️ TIL 오늘 TIL 3줄 요약 - 자원을 직접 명시하지 말고 의존객체 주입을 사용하라 TIL (Today I Learned) 날짜 오늘 읽은 범위 2장. 객체 생성과 파괴 - 아이템5 책에서 기억하고 싶은 내용을 써보세요. - 인스턴스를 생성할 떄 생성자에 필요한 자원을 넘겨주는 방식 - 클래스가 내부적으로 하나 이상의 자원에 의존하고, 그 자원이 클래스 동작에 영향을 준다면 싱글턴과 정적 유틸리티 클래스는 사용하지 않는것이 좋다. 이 자원들은 클래스가 직접 만들게 해서도 안되며, 그 대신 필요한 자원을 생성자에게 넘겨주는것이 바람직하다. - 의존객체 주입을 통해 클래스의 유연성, 재사..

[독서] ”이펙티브자바 3편“ 5일차

#코딩 #개발자 #객체지향의사실과오해 #개발자필독 #도서리뷰 Assignment #5 📚 2장. 객체 생성과 파괴 ✔️ TIL 오늘 TIL 3줄 요약 - 인스턴스화를 막으려거든 private생성자를 사용하라. TIL (Today I Learned) 날짜 오늘 읽은 범위 2장. 객체 생성과 파괴 - 아이템4 책에서 기억하고 싶은 내용을 써보세요. - 유틸리티 클래스들은 따로 인스턴스 변수나 메소드가 없어도 사용할 수 있으므로 생성자가 필요하지 않다. - 인스턴스화를 막기 위해 추상클래스로 만드는 경우가 있는데, 추상클래스로는 인스턴스화를 막을 수 없다. 하위클래스를 만들어 인스턴스화 하면 그만이기 때문 - 유틸리티 클래스의 인스턴스화를 막기위해서는 생성자의 접근제어자를 Private으로 만들어주어야 한다...

[독서] “이펙티브 자바 3편” 4일차

#코딩 #개발자 #객체지향의사실과오해 #개발자필독 #도서리뷰 2 주차 월 | Assignment #4 📚 2장. 객체 생성과 파괴 ✔️ TIL 오늘 TIL 3줄 요약 - TIL (Today I Learned) 날짜 2023.01.09 오늘 읽은 범위 2장. 객체 생성과 파괴 - 아이템3 책에서 기억하고 싶은 내용을 써보세요. - private 생성자나 열거 타입으로 싱글턴임을 보증하라 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요 - 그외에 공부한 내용 직렬화,역직렬화가 뭔지.. 자세히는 안함 참고 블로그 https://velog.io/@lychee/%EC%9D%B4%ED%8E%99%ED%8B%B0%EB%B8%8C-%EC%9E%90%EB%B0%94-%EC%95%84%EC%9D%B4%ED%85%9C..

[코테준비 - python] 프린터 level2 - 개발자배찌

https://school.programmers.co.kr/learn/courses/30/lessons/42587?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 딱 봐도 큐 문제다. 문법력이 부족한 나는 heap이나 queue를 활용하지 못하고 리스트 튜플로 정의해서 풀었다.. 풀릴듯 말듯.. 꽤 시간을 잡아먹었던 녀석 내 성공한 문제풀이 def solution(priorities, location): answer = 0 temp = [(i,p) for i,p in enumerate(priorities)] queue=[] f..

[코테준비 - python] n^2 배열자르기 level2 - 개발자배찌

💗풀이과정💗 입력값 = n, left, right 1. n*n의 2차원 배열을 만든다. 값은 0으로 초기화 2. i * i 행까지 값을 i로 넣는다. 3. 2차원 배열을 1차원 배열로 만든다. 4. 해당 배열에서 left부터 right까지의 배열만 쪼갠다 일단 여기서 막혔던 부분은 2번.. "i * i 행 까지 값을 i로 넣는다" 이게 죽어도 안구해졌다. 다른사람의 풀이를 보니, 나처럼 위 풀이방법으로 하면 시간초과가 뜬다고 한다. 아무리 발악해도 안되는 문제풀이였다.. 규칙을 찾아내야한다!! 그치만 아무리 생각해도 규칙도 찾아지지도않음.. 여기 밑에 까지는 생각해냄.. ! n이 3일때 (0,0)(0,1)(0,2) (1,0)(1,1)(1,2) (2,0)(2,1)(2,2) Max값으로 따지면 0 1 2 1..