> 웹 프론트엔드 > JS 튜토리얼 > Django 웹사이트에서 AI 기반 요약 만들기

Django 웹사이트에서 AI 기반 요약 만들기

Mary-Kate Olsen
풀어 주다: 2024-11-30 06:13:10
원래의
985명이 탐색했습니다.

긴 텍스트를 요약하는 것은 지루할 수 있습니다. 특히 간결한 요약이 사용자 경험을 향상시키는 PyBazaar와 같은 플랫폼에서는 더욱 그렇습니다. 이 게시물에서는 Django 기반 프로젝트에서 Simplemind와 Gemini를 사용하여 이 프로세스를 자동화한 방법을 공유하겠습니다.

배경 정보

최근에 저는 Python 개발자들이 자신의 기술을 보여주고, 구인 정보를 찾고, 개발 리소스를 게시하고 찾을 수 있는 웹사이트인 PyBazaar.com을 시작했습니다. 그 목적은 Python 개발자가 자신의 서비스, 제품 또는 프로젝트를 마케팅할 수 있는 중심 장소를 마련하는 것입니다.

PyBazaar의 세부 보기에는 채용 기회와 리소스에 대한 긴 설명이 표시되고 목록 보기에는 간단한 요약이 표시됩니다. 요약은 사용자가 각각의 세부 보기를 열지 않고도 리소스 내용과 채용 기회를 빠르게 파악하는 데 도움이 되어 PyBazaar의 전반적인 탐색 경험을 향상시킵니다. 보다 원활한 편집을 위해 AI 기반 자동 요약 기능을 도입했습니다.

Creating AI-based Summaries in a Django Website

LLM과의 커뮤니케이션을 위해 Simplemind 선택

유명한 패키지 requests의 저자인 Kenneth Reitz는 최근 대규모 언어 모델(LLM)의 API를 사용하여 개발자 경험을 향상시키는 최신 창작물인 Simplemind를 출시했습니다. 그의 패키지를 PyBazaar에 통합해 볼 수 있는 좋은 기회라고 생각했습니다.

저는 무료 등급으로 Google Gemini를 선택했지만 OpenAI 또는 Claude와 같은 제공업체에 대한 Simplemind의 지원 덕분에 개발자는 필요한 경우 더 고급 기능이나 더 정확한 결과를 위해 확장할 수 있습니다.

API 키 설정

처음에는 Google AI Studio에서 API Key를 받아야 했습니다.

장고 통합

그런 다음 Simplemind를 설치했습니다.

(venv)$ pip install 'simplemind[full]'
로그인 후 복사
로그인 후 복사

하지만 종속성 중 하나(grpcio)가 Mac에서 컴파일되기를 기다리는 동안 에너지 드링크를 마시고 소셜 미디어 피드의 절반을 스크롤할 만큼 충분한 시간을 가졌습니다.

Simplemind에서는 LLM API 키가 환경 변수에 정의되어 있을 것으로 예상합니다. 내 Django 프로젝트에서는 Git이 무시하는 JSON 파일에 비밀을 저장하고 내가 작성한 유틸리티 함수인 get_secret()을 사용하여 해당 값을 읽습니다.

그래서 Django 설정에 다음 줄을 추가했습니다.

import os
os.environ["GEMINI_API_KEY"] = get_secret("GEMINI_API_KEY")
DEFAULT_LLM_PROVIDER = "gemini"
로그인 후 복사

게시된 HTML 콘텐츠를 가져와서 LLM에 요약을 요청하고 요약을 사용자에게 반환하는 간단한 보기를 만들었습니다.

import json
import simplemind
from django.contrib.auth.decorators import login_required
from django.conf import settings
from django.http import JsonResponse
from django.utils.html import strip_tags


@login_required
def summarize(request):
    summary = ""
    try:
        if (
            request.method == "POST"
            and (data := json.loads(request.body))
            and (content := data.get("content"))
            and (text := strip_tags(content).strip())
        ):
            summary = simplemind.generate_text(
                prompt=f"Condense the following information in 2 sentences:\n\n{text}",
                llm_provider=settings.DEFAULT_LLM_PROVIDER,
            ).strip()
    except json.JSONDecodeError:
        pass
    data = {"summary": summary}
    return JsonResponse(data)
로그인 후 복사

보시다시피 Simplemind요청 앱만큼 우아합니다. 더 발전된 결과나 더 스마트한 쿼리가 필요한 경우 OpenAI 또는 Claude로 쉽게 전환할 수 있었습니다.

strip_tags()를 사용하여 토큰 수를 줄이고, Strip()을 사용하여 앞뒤 공백을 제거했습니다.

뷰 성능을 향상시키기 위해 ASGI나 백그라운드 작업을 사용할 수도 있지만 PyBazaar에 사용자가 많을 때 고려해야 할 사항입니다.

요약 버튼에는 레이아웃이 포함된 Django Crispy Forms 레이아웃에 포함된 템플릿이 있습니다.HTML("""{% include "summarizer/includes/summarize_button.html" %}"""):

(venv)$ pip install 'simplemind[full]'
로그인 후 복사
로그인 후 복사

사용자가 "AI로 요약" 버튼을 클릭하면 Javascript는 버튼을 일시적으로 비활성화하고 텍스트를 "요약 중..."으로 변경한 다음 QuillJS 필드에서 HTML 값을 읽고 이를 {"content"로 게시합니다. ": "..."}를 요약 보기로 이동합니다. 요약을 {"summary": "..."}로 수신한 후 Javascript는 요약 텍스트 영역을 채우고 버튼을 다시 클릭할 수 있게 만듭니다.

결론

Simplemind를 사용하면 스마트 기본값을 사용하여 LLM 작업이 더 쉬워지므로 개발자는 온도나 max_tokens와 같은 복잡한 설정을 조정할 필요가 없습니다.

Gemini LLM은 무료로 사용할 수 있으며, 적당한 수의 활성 사용자가 있는 경우 이와 같은 간단한 기능을 사용하기에 충분해 보입니다.

PyBazaar에서 이 요약 기능을 단 반나절 만에 구현했으며 이 통합을 쉽게 조정하여 메타 설명, 이메일 초안 또는 맞춤형 추천을 생성할 수 있었습니다.

자신의 기술을 선보이고 리소스를 공유하거나 기회를 찾고 있는 Python 개발자라면 지금 PyBazaar.com을 방문하세요!


표지 사진 by Caio

위 내용은 Django 웹사이트에서 AI 기반 요약 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿