Min 10

2024-11-28 개선사항

모국어 타이핑 AI 번역 한국어 피드백 -> 클로드 번역 기능 개선첫 번째 문제: 메시지 중복 표시문제: 전체 메시지와 분할된 메시지가 동시에 표시됨원인: addMessage(chatData.message)와 분할된 메시지 각각에 대한 addMessage(segment) 호출이 중복해결: 분할된 메시지만 표시하도록 수정하고, 원본 메시지는 dataset으로 저장두 번째 문제: 번역 버튼 중복문제: 모든 분할된 메시지에 번역 버튼이 표시됨원인: addMessage 함수에서 모든 AI 메시지에 번역 버튼을 추가해결: isLastSegment 파라미터를 추가하여 마지막 세그먼트에만 번역 버튼 표시세 번째 문제: 응답 속도 저하문제: AI 응답과 음성 생성이 너무 느림원인: 음성 생성 요청이 순차적으로 처리됨해..

Min 2024.11.28

서비스 코드 분석 (JS 불필요한 함수/변수 최적화)

ChatApp 함수 종합 분석(✂️ = 제거 권장 함수/변수)1. 초기화 및 설정 그룹init()setupEventListeners() checkLoginStatus()setupAudioRecording()setupVolumeMonitoring()initializeExamples()관계 및 실행 순서:init(): 애플리케이션 시작점DOM 요소 존재 확인채팅 입력창 자동완성 설정setupEventListeners(): 모든 이벤트 리스너 등록checkLoginStatus(): 로그인 상태 확인setupAudioRecording(): 오디오 시스템 초기화setupVolumeMonitoring(): 오디오 볼륨 모니터링 설정initializeExamples(): 예제 데이터 초기화제거 대상 변수:✂️ rec..

Min 2024.11.22

피드백 기능 추가 / 설명

서론 : 피드백 기능 자체는 쉽게 만들었으나다른 코드 위에 이식하느라 애를 좀 먹었다.  일단 프론트엔드 부터 바로 가자.1. 프론트엔드피드백 버튼 생성 및 초기 피드백:function addMessage(message, isUser, audioData) { const messageDiv = document.createElement("div"); messageDiv.className = `message ${isUser ? "user-message" : "bot-message"}`; const messageBubble = document.createElement("div"); messageBubble.className = "message-bubble"; messageBubble...

Min 2024.11.15

유저 피드백에 의한 기능 개선/수정

유저 피드백을 진행했다.나는 교정하느라 치과 갔다 와서 입에 피 질질 흘리고 있어서팀원들이 진행해주었다.  유저 피드백1. 음성 인식이 구리다.2. 텍스트를 수정하고 싶은데 자동으로 전송되는 게 불편하다3. AI가 보내는 문자와 tts가 동시에 나가지 않는 게 불편하다.4. 기타 생성 문제 (이는 계속 개선하는 중) 이 부분은 일단 프롬프트 엔지니어링으로 많은 테스트가 필요    일단 현재 사용자 음성 인식이 끝나면해당 발화가 텍스트로 반환되어 자동으로 AI에게 전달되는데 유저들은 이 기능을 별로 좋아하지 않는다는 반응이 나왔다. 이는 인식문제와도 연관되는데내가 하는 말을 완벽하게 인식하여 텍스트로 변환이 안됨-> 잘못 인식한 내 말을 수정하고 싶음. 일단 인식문제를 고쳐야 하는데.openai whisp..

Min 2024.11.01

2024-10-29 개발일지 (메모리 기능 구현)

4시간 동안 메모리 구현 코드를 짰는데 완성했더니이전 기능들이 작동을 안 한다;;;7살짜리가 손에 쥐고 다니던 쿠크다스마냥 멘탈이 박살 났다;;.(망한 설계) 쿠크다스 입에 털어 넣고 다시 처음부터 설계를 하고 짜고 있다. 새로운 설계 현재 메모리 기능은 유저와 AI가 했던 대화를 AI가 기억하고 (사용자의 취미나 관심사 같은 거)문맥에 맞게 대화를 하기 위해 매우 필수적인 기능이다. 새롭게 설계를 하다가 떠오른 건데전에 적용했던 복병인 캐시 기능에서 사용된 임베딩 기능을여기에 사용해 보면 어떨까 라는 생각이 들었다. 대화 = 사용자 :  AI 1. 대화를 DB(문자)에 저장한다.-> 가장 가까운 대화 10개를 불러와서 문맥을 유지시킨다.(더 많은 대화를 불러올 수 있지만 토큰이 너무 많이 듦) 2. 대..

Min 2024.10.29

2024-10-28(월) 개발일지

캐시 기능을 도입하고 전체적으로 프로덕트의 속도가 향상되었지만(RAG 시스템이 원래 상당히 느렸음)이유를 못 찾음. 캐시를 사용하다 보니 미리 지정된 것들을 빠르게 가져오는 건가 싶었는데그렇다기에는 캐시가 너무 적음. 그냥 코드를 갈아엎는 과정에서 최적화가 된 듯. 문제는 이게 아님. 캐시 시스템이 생각보다 매우 비효율적임. 계속 계속 캐시가 쌓이다 보면무한대로 대화를 나눈다는 가정하에무한대에 가까운 용량의 저장소가 필요해짐.(이러면 사실상 사용자가 할만한 모든 질문에 답변을 미리 생성해 두는 딱딱한 룰 베이스랑 다를 게 없음) 그래서 캐시 기능 자체를 제거하려다가 캐시 용량을 정해둠.(50mb 500mb 이런 식으로)오래된 캐시는 지우고 새로운 캐시가 갱신되는 시스템인데사실 있으나 마나임. 하지만 추후..

Min 2024.10.28

AI 기초에 대해 시리즈로 글을 쓰기로 함.

첫빠따는 임베딩(본인 개인 블로그에 적음 ) 임베딩(Embeddings)이 뭔가요? AI 기초 (1)AI 기초 시리즈다. 바로 간다 첫 번째 임베딩(Embeddings)임베딩이 뭐임? 일단 영어로의 뜻기본 뜻embed (동사): 꽂아 넣다, 박다, 묻다, 깊이 새기다예: embed a nail in the wall (못을 벽에 박다)파생된 형min-c-max.tistory.com다음은 인덱싱이나 RAG의 전체적인 개념을 적을까 생각중.

Min 2024.10.24

Chroma DB 관련 학습을 위해 예제로 한번 테스트를 해봤습니다.

Chroma LangChain Tutorial (0) 크로마 랭체인 튜토리얼 라그 RAG벡터 스토리지를 사용해야 되는 일이 생겼다.그래서 이것저것 해보고 있다. Chroma Doc를 읽으며 여러 가지 코드들을 실행해 보며 이해해보고 있다.나처럼 허우적 되는 사람을 위해 내가 이해한min-c-max.tistory.com  Chroma LangChain Tutorial (1) 크로마 랭체인 튜토리얼 라그 RAG 코드 분석https://min-c-max.tistory.com/entry/Chroma-LangChain-Tutorial-%ED%81%AC%EB%A1%9C%EB%A7%88-%EB%9E%AD%EC%B2%B4%EC%9D%B8-%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC-%EB%9D%B..

Min 2024.10.24