>백엔드 개발 >파이썬 튜토리얼 >AI 및 BotHub API를 사용하여 생산성을 높이는 간단한 Python 앱 구축

AI 및 BotHub API를 사용하여 생산성을 높이는 간단한 Python 앱 구축

Barbara Streisand
Barbara Streisand원래의
2024-11-15 12:40:03864검색

할 일을 할당하고 아이디어를 논의하면서 중요한 온라인 회의를 마치고 나서 누가 무슨 말을 했는지 기억이 나지 않으신가요? 모든 것을 추적하고 보고서를 생성하려면 전담 메모 작성자가 필요한 것처럼 느껴집니다. 더 나은 해결책은 스크립트를 사용하여 이를 자동화하는 것인데, 이것이 바로 우리가 할 일입니다.

이 튜토리얼에서는 BotHub API(Whisper-1 Claude 3.5 Sonnet)를 사용하여 회의를 자동으로 분석하고 보고서를 생성하는 애플리케이션을 만드는 방법을 보여 드리겠습니다. 이 애플리케이션은 오디오 녹음을 기록하고 주요 정보(누가 무엇을 말했고 어떤 작업이 논의되었는지)를 식별하며 PDF 버전을 포함한 보고서를 작성합니다.

종속성 및 프로젝트 구성 설정

시작하기 전에 Python과 API 및 오디오 파일 작업에 필요한 라이브러리를 포함하여 필요한 모든 구성 요소가 설치되어 있는지 확인하세요. 다음을 설치하겠습니다:

  • os 및 pathlib.Path: 환경 변수 및 파일 경로 작업용;
  • dotenv: .env 파일에서 민감한 데이터를 로드합니다.
  • fpdf: PDF 파일 생성용;
  • openai: BotHub API와 상호작용합니다.

pip를 사용하여 다음 패키지를 설치하세요.

pip install openai python-dotenv fpdf

또한 로깅을 사용하여 프로그램 실행을 추적하고 오류나 중요한 메시지를 기록합니다. INFO 수준에서 기본 로깅을 설정하겠습니다.

import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

BotHub API와 상호작용하려면 먼저 BotHub 플랫폼에 등록하고 API 키를 받아야 합니다. 이 키는 우리가 보낼 요청을 인증하는 데 사용됩니다.

Building a simple Python app to boost productivity using AI and the BotHub API

안전한 키 저장을 위해 프로젝트의 루트 디렉터리에 .env 파일을 생성하고 생성된 API 키를 추가하세요.

BOTHUB_API_KEY=your_api_key

다음으로 dotenv 라이브러리의 load_dotenv() 함수를 사용하여 .env 파일에서 데이터를 로드하여 코드에서 액세스할 수 있도록 합니다.

from dotenv import load_dotenv

load_dotenv()

BotHub API를 사용하려면 OpenAI 인스턴스를 생성하고 BotHub 서비스에 대한 api_key 및 base_url을 제공하세요. API 키는 os.getenv('BOTHUB_API_KEY')를 사용하여 환경에서 로드됩니다.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv('BOTHUB_API_KEY'),
    base_url='https://bothub.chat/api/v2/openai/v1'
)

오디오 처리 핵심 기능

이 단계에는 오디오 파일을 텍스트로 변환하는 기능을 만드는 작업이 포함됩니다. 음성 인식을 위해 BotHub API와 Whisper-1을 활용하겠습니다. 오디오 파일은 바이너리 읽기 모드(rb)로 열린 다음 client.audio.transcriptions.create 메소드를 사용하여 처리를 위해 오디오 파일을 서버로 보냅니다. 응답에는 텍스트 전사가 포함됩니다. 전사가 성공하면 "전사 완료" 메시지가 기록되고 추가 처리를 위해 텍스트가 반환됩니다. 오류가 발생하면 오류 메시지가 기록됩니다.

pip install openai python-dotenv fpdf

핵심 인사이트 추출

녹취가 끝나면 회의 내용이 나옵니다. 이제 우리의 목표는 논의된 작업, 내린 결정, 확인된 문제 등 핵심 통찰력을 추출하는 것입니다. client.chat.completions.create를 사용하여 모델, 회의 텍스트 및 메시지 형식의 요청을 지정하여 이러한 핵심 사항을 추출하는 요청을 생성합니다. 여기서 모델이 주요 작업과 문제를 식별하도록 지시합니다. 이 함수는 성공적으로 실행되면 주요 통찰력이 포함된 문자열을 반환합니다.

import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

감성 분석

회의 텍스트의 감정도 분석할 수 있습니다. extract_key_points와 마찬가지로 client.chat.completions.create를 사용하여 제공된 텍스트에 대한 감정 분석을 요청합니다. 감정 분석 결과나 오류 메시지를 반환하는 함수입니다.

from dotenv import load_dotenv

load_dotenv()

보고서 생성

핵심 통찰력과 감정 분석이 완료되면 이를 보고서로 편집해야 합니다. 이 보고서는 논리적이고 일관적이며 간결해야 합니다. 우리는 client.chat.completions.create를 사용하여 핵심 사항과 감정 분석이 포함된 요청을 제공하고 API가 최종 보고서 텍스트를 생성할 수 있도록 합니다. 이 함수는 성공적으로 완료되면 보고서 텍스트를 반환합니다.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv('BOTHUB_API_KEY'),
    base_url='https://bothub.chat/api/v2/openai/v1'
)

쉽게 저장하고 공유할 수 있도록 보고서를 PDF로 저장합니다. 우리는 PDF 생성을 위해 FPDF 라이브러리를 사용합니다. 페이지를 추가하고 multi_cell을 사용하여 자동 텍스트 줄 바꿈을 활성화합니다. 보고서 텍스트로 페이지를 생성하고 채운 후 출력(file_path)을 사용하여 보고서를 저장합니다.

def transcribe_audio(audio_file_path):
    try:
        with open(audio_file_path, "rb") as audio_file:
            transcript = client.audio.transcriptions.create(
                model="whisper-1",
                file=audio_file
            )
        logger.info("Transcription complete.")
        return transcript.text
    except Exception as e:
        logger.error(f"Error during audio transcription: {e}")
        return None

주요 기능

이 기능은 이전 단계를 모두 조정합니다. 오디오를 복사하는 것으로 시작됩니다. 전사에 실패하면 오류 메시지가 표시되고 함수가 종료됩니다. 다음으로, 핵심 인사이트를 추출하는 함수를 호출합니다. 오류가 발생하면 적절한 메시지를 반환합니다. 감정 분석도 유사하게 수행되며, 성공하면 보고서 텍스트가 생성됩니다. 모든 단계가 성공적으로 완료되면 save_report_as_pdf가 호출되어 보고서를 PDF 형식으로 저장합니다. 마지막으로 함수는 생성된 보고서 텍스트를 반환합니다.

def extract_key_points(meeting_text):
    try:
        response = client.chat.completions.create(
            model="claude-3.5-sonnet",
            messages=[
                {
                    "role": "user",
                    "content": f"Analyze the following meeting transcript and extract key insights, such as tasks, decisions, and discussed problems:\n\n{meeting_text}"
                }
            ]
        )
        logger.info("Key insight extraction complete.")
        return response.choices[0].message.content
    except Exception as e:
        logger.error(f"Error extracting key insights: {e}")
        return None

결론적으로 우리는 생산성을 높이고 시간을 보다 효과적으로 관리하는 데 도움이 되는 작은 애플리케이션을 구축했습니다. 우리는 오디오 전사, 주요 통찰력 추출, 보고서 생성, 보고서를 PDF 형식으로 저장하는 등 일련의 핵심 기능을 구현했습니다. 이 도구를 사용하면 중요한 아이디어와 작업을 추적하여 시간과 노력을 절약할 수 있습니다.

도움이 되었기를 바랍니다! 그렇다면 어떤 지원이든 환영합니다. 읽어주셔서 감사합니다! ?

위 내용은 AI 및 BotHub API를 사용하여 생산성을 높이는 간단한 Python 앱 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.