ホームページ >バックエンド開発 >Python チュートリアル >AI と BotHub API を使用して生産性を向上させるシンプルな Python アプリを構築する

AI と BotHub API を使用して生産性を向上させるシンプルな Python アプリを構築する

Barbara Streisand
Barbara Streisandオリジナル
2024-11-15 12:40:03893ブラウズ

タスクが割り当てられ、アイデアが議論された重要なオンライン会議から退出したものの、誰が何を言ったかまったく思い出せないという経験はありませんか?すべてを追跡し、レポートを作成するには、専任のメモを取る人が必要であるように感じられます。より良い解決策は、スクリプトを使用してこれを自動化することです。これはまさに私たちが行うことです。

このチュートリアルでは、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 で自動テキスト折り返しを有効にします。ページを作成してレポート テキストを入力した後、output(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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。