首页 >后端开发 >Python教程 >使用 AI 和 BotHub API 构建简单的 Python 应用程序以提高工作效率

使用 AI 和 BotHub API 构建简单的 Python 应用程序以提高工作效率

Barbara Streisand
Barbara Streisand原创
2024-11-15 12:40:03867浏览

曾经在一次重要的在线会议上分配了任务并讨论了想法,但不太记得谁说了什么?几乎感觉您需要一个专门的记录员来跟踪一切并生成报告。更好的解决方案是使用脚本自动执行此操作,这正是我们要做的。

在本教程中,我将向您展示如何创建一个使用 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。我们使用 FPDF 库来创建 PDF。我们添加一个页面,使用 multi_cell 启用自动文本换行。使用报告文本创建并填充页面后,我们使用输出(文件路径)保存报告。

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