Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release: 1.1.0 #70

Merged
merged 1 commit into from
Feb 6, 2025
Merged

release: 1.1.0 #70

merged 1 commit into from
Feb 6, 2025

Conversation

cjeongmin
Copy link
Contributor

Release 1.1.0 (2025. 02. 06)

LLM을 활용해 사용자의 질문을 개선하고 축약하는 기능을 추가하는 것을 중점적으로 진행했습니다. 그와 함께 일부 이슈를 해결하고, UI/UX를 개선했습니다.

추가된 기능

질문 개선

사용자가 작성한 질문이 호스트에게 의도대로 전달되지 않는 경우가 종종 생기기도 합니다.

질문과 답변으로 이루어지는 Ask-It 서비스는 질문을 보다 작성하기 쉽게 지원하기 위해서 AI를 활용한 질문 개선 기능을 추가하기로 결정했습니다.

  • 사용자의 경험을 개선하기 위해서 질문 작성시, AI를 활용하여 현재 질문을 개선할 수 있는 기능을 추가했습니다.
    • 질문 작성 중, 질문 개선하기 버튼을 통해서 질문을 보다 명확하고 이해하기 쉬운 질문으로 변환할 수 있습니다.
2025-02-06.16.45.09.mov

글자 수 제한

질문과 답글에 글자 수를 500자로 제한하여 정책상 변화가 생겼습니다.

AI 서비스의 도입에 따라 토큰 비용이 발생하기 때문에 글자수 제한을 도입하였습니다.

  • 참고 서비스인 slido의 150자 제한
  • 현실적인 질문의 길이
  • 마크다운 지원을 위해, 500자 제한

질문 요약

질문이 너무나도 길어지면, 읽기도 이해하기도 어려울 수 있습니다. 또한 AI 질문 개선 기능을 사용시에 500자를 넘는 응답을 받을 수도 있습니다.

이를 위해 질문 요약 기능을 추가했습니다. 사용자가 직접 요약하기보단 AI를 통해 요약한다면 사용자 경험을 높일 수 있을 것이라고 판단하였습니다.

  • 사용자의 질문이 500자 제한 정책에 위배되지 않도록 AI를 활용해 500자 이하로 줄입니다.
  • 또한 너무 길어서 호스트가 읽기 어려운 질문을 AI를 활용해 핵심만 요약하도록 합니다.
2025-02-06.17.30.36.mov

BE

질문 개선 기능 (PR #58)

프롬프트

프롬프트를 하는 과정에서 다음과 같은 문제가 발생하였고, 아래와 같은 방법을 통해 해결하였습니다.

  • 마크다운 요소와 사용자가 첨부한 링크를 누락
    • 입출력 예시를 제공하여 AI가 이를 참고해 개선된 질문을 할 수 있도록 하였습니다.
    • 사용자의 질문에 마크 다운 요소가 있다면 꼭 포함할 것을 0번 규칙으로 지정하였습니다.
  • AI가 사용자의 질문에 대한 답변을 추가함
    • 재작성한 질문만을 답변으로 내놓고, 자신의 분석, 정보 등을 포함하지 말 것을 직접적으로 명시함으로써 문제를 해결하였습니다.
  • 500자 이상 작성된 글이 답변으로 반환됨
    • 질문 요약 기능을 추가하여 500자 이상 작성되었을 경우 질문요약기능을 통해 다시 글을 받아볼 수 있도록 합니다.

질문 요약 기능 (PR #67)

프롬프트

프롬프트를 하는 과정에세 다음과 같은 문제가 발생하였고, 아래와 같은 방법을 통해 해결하였습니다.

  • 마크다운 요소가 누락되는 문제 발생
    • 질문 개선 기능과 마찬가지로 마크다운 요소가 누락되는 문제가 발생하였습니다. 해당 문제를 질문 개선 기능때와 같은 방법으로 해결하였습니다.
  • 상황마다 글자수 제한 정책(500자)을 넘는 글이 작성되는 문제 발생
    • 질문과 상황에 따라 요약 기능을 통해 받아온 글이 글자수 제한 정책인 500자보다 더 많은 경우가 발생하였습니다.
      • 이 문제는 차후 AI를 통해 요약한 글이 500자가 넘을 경우 자동으로 재요청을 보낼 수 있도록 처리할 예정입니다.

도커 컨테이너 bcrypt 문제 (PR #61)

bcryptjs의 도입

docker container 실행 시에 bcrypt 의존성 문제가 발생했습니다.

2025-02-05 15:44:58 Error: Cannot find module '/app/node_modules/.pnpm/[email protected]/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node'
2025-02-05 15:44:58 Require stack:
2025-02-05 15:44:58 - /app/node_modules/.pnpm/[email protected]/node_modules/bcrypt/bcrypt.js
  • 다양한 해결방안을 시도했지만 대부분의 알려진 방법들이 잘 작동하지 않아 bcrypt 라이브러리를 bcryptjs라는 js전용 라이브러리로 바꾸기로 결정을 했습니다.
  • 다음은 bcryptjs 설명의 일부입니다.
    • Optimized bcrypt in JavaScript with zero dependencies. Compatible to the C++ bcrypt binding on node.js and also working in the browser.
  • bcryptjs를 사용하면 bcrypt보다 30% 가량의 성능 저하가 발생할 수 있습니다.
  • 하지만 저희 서비스에서는 access/refresh token을 활용하기 때문에 로그인 주기가 일주일 단위로 길고, 회원 가입도 자주 일어나지 않기 때문에 성능 저하가 발생하더라도 서비스 품질에 큰 영향을 주지 않을 것이라고 판단했습니다.

출력 토큰 제한으로 인한 문제

현재 AI의 출력 토큰이 최대 1024개로 제한되어 있어, 다음과 같은 문제가 발생할 수 있습니다.

  • AI가 생성한 답변이 1024 토큰을 초과할 경우, 글이 중간에 잘려 불완전한 상태로 반환됨
  • 사용자가 긴 URL을 포함한 경우, AI가 이를 온전히 포함하지 못하거나 URL이 누락됨

이러한 문제를 해결할 수 있는 방안을 검토할 예정입니다.

FE

질문/답변 UI/UX 개선 (PR #57, PR #64, PR #66)

질문과 답변 지원 기능이 추가됨으로써, 기존 UI의 변경이 필요하다고 생각이 되는 지점이었습니다.

따라서, 질문/답변 UI/UX를 개선하는 작업을 진행했습니다.

개선 전

질문 답변
image image (1)

개선 후

질문 답변
질문 답변
  • 모달 하단 AI 기능을 사용하는 버튼 추가
  • 마크다운 미리보기, 답변 작성시 질문 보기와 같은 버튼은 입력 영역 우측으로 위치 변경

또한, 추가적으로 질문과 답변을 작성한 후에 실수로 삭제되는 경우를 제거하기 위해서 일부 수정을 진행했습니다.

  • 드래그 상태로 모달 밖으로 나갈 경우, 모달이 닫히는 경우 수정
  • 질문, 답변 작성시 모달 외부를 클릭해도 모달이 닫히지 않도록 수정

질문 개선/축약 기능 추가 (PR #64, PR #69)

질문 개선/축약 기능을 사용할 시 기존의 경우와 다르게 추가적인 플로우가 필요했습니다.

  • 응답 적용
  • 재요청
  • 응답 거절

따라서, 개선/축약 기능을 사용하고 질문/답글 입력 화면이 응답 이후에 사용자가 선택할 수 있도록 일부 UI가 수정되었습니다.

또한, 정책상 질문/답변의 글자수를 500자 이하로 제한하여 글자수를 카운트하는 기능에서 링크 또는 이미지의 경우에 링크 텍스트 자체는 제외하도록 추가적인 작업이 진행되었습니다.

@cjeongmin cjeongmin requested review from yu-yj215 and shl0501 February 6, 2025 08:57
@cjeongmin cjeongmin self-assigned this Feb 6, 2025
@Copilot Copilot bot review requested due to automatic review settings February 6, 2025 08:57

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review any files in this pull request.

Files not reviewed (1)
  • package.json: Language not supported
Copy link
Collaborator

@shl0501 shl0501 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

릴리즈 노트의 신이라 불러도 될 것 같습니다.
릴신 정민님...
LGTM

Copy link
Contributor

@yu-yj215 yu-yj215 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@cjeongmin cjeongmin merged commit 0f759c8 into main Feb 6, 2025
2 checks passed
@cjeongmin cjeongmin deleted the release branch February 6, 2025 09:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants