Awesome LLM Apps客服语音智能体:AI电话客服系统

【免费下载链接】awesome-llm-apps Collection of awesome LLM apps with RAG using OpenAI, Anthropic, Gemini and opensource models. 【免费下载链接】awesome-llm-apps 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-llm-apps

客服语音智能体是一款基于OpenAI SDK构建的客户支持应用,它利用OpenAI的GPT-4o和TTS(文本转语音)功能,提供基于语音的知识库问答服务。该系统通过Firecrawl爬取文档网站内容,使用Qdrant处理并构建可搜索的知识库,同时提供文本和语音两种形式的用户查询响应。

核心功能

知识库创建

  • 文档爬取:使用Firecrawl爬取指定文档网站内容,支持Markdown和HTML格式,默认限制爬取5页以平衡性能与内容覆盖度。
  • 向量存储与索引:通过Qdrant向量数据库存储和索引内容,支持高效的语义搜索。
  • 嵌入生成:利用FastEmbed生成文本嵌入(Embedding),为语义搜索提供基础能力。

AI智能体团队

  • 文档处理器(Documentation Processor):分析文档内容,生成清晰简洁的回答,包含相关示例并引用来源URL,确保回答易于口头表达。
  • TTS智能体(Text-to-Speech Agent):将文本响应转换为自然语音,支持多种语音风格,确保技术术语发音清晰,语速和停顿合理。
  • 语音定制:提供11种OpenAI TTS语音选项:alloy、ash、ballad、coral、echo、fable、onyx、nova、sage、shimmer、verse。

交互式界面

  • Streamlit UI:简洁的侧边栏配置和主界面交互,支持实时文档搜索和响应生成。
  • 音频播放与下载:内置音频播放器,支持下载语音响应文件。
  • 进度指示:系统初始化和查询处理过程中显示进度状态,提升用户体验。

系统架构

系统架构

系统主要由以下模块构成:

  1. 数据采集层:通过Firecrawl爬取文档网站内容,支持多格式输出。
  2. 向量存储层:使用Qdrant向量数据库存储文档嵌入和元数据。
  3. 嵌入生成层:FastEmbed生成文本嵌入向量,用于语义相似度计算。
  4. 智能体处理层
    • 文档处理器:基于GPT-4o的问答生成。
    • TTS智能体:基于GPT-4o-mini-tts的语音合成。
  5. 用户交互层:Streamlit构建的Web界面,提供API配置、文档URL输入、语音选择和查询交互功能。

快速开始

环境准备

  1. 克隆仓库

    git clone https://gitcode.com/GitHub_Trending/aw/awesome-llm-apps
    cd awesome-llm-apps/voice_ai_agents/customer_support_voice_agent
    
  2. 安装依赖

    pip install -r requirements.txt
    

API配置

需要获取以下API密钥并在侧边栏配置:

  • OpenAI API Key:用于GPT模型调用和TTS生成,从OpenAI Platform获取。
  • Qdrant API Key和URL:用于向量存储,从Qdrant Cloud获取。
  • Firecrawl API Key:用于文档爬取,从Firecrawl官方渠道获取。

系统初始化

  1. 在侧边栏输入文档URL(如https://docs.example.com)。
  2. 选择 preferred 语音选项。
  3. 点击"Initialize System"按钮,系统将自动完成:
    • Qdrant连接与集合创建。
    • 文档爬取与内容处理。
    • 嵌入生成与向量存储。
    • 智能体初始化。

使用流程

  1. 在主界面输入查询问题(如"How do I authenticate API requests?")。
  2. 系统将:
    • 搜索相关文档内容。
    • 生成文本回答。
    • 转换为选定语音的音频响应。
  3. 可播放或下载语音响应,并查看引用来源URL。

核心代码解析

系统初始化

初始化函数setup_qdrant_collection负责创建Qdrant连接和集合,代码位于voice_ai_agents/customer_support_voice_agent/customer_support_voice_agent.py

def setup_qdrant_collection(qdrant_url: str, qdrant_api_key: str, collection_name: str = "docs_embeddings"):
    client = QdrantClient(url=qdrant_url, api_key=qdrant_api_key)
    embedding_model = TextEmbedding()
    test_embedding = list(embedding_model.embed(["test"]))[0]
    embedding_dim = len(test_embedding)
    
    try:
        client.create_collection(
            collection_name=collection_name,
            vectors_config=VectorParams(size=embedding_dim, distance=Distance.COSINE)
        )
    except Exception as e:
        if "already exists" not in str(e):
            raise e
    
    return client, embedding_model

文档爬取

crawl_documentation函数使用Firecrawl爬取文档内容,代码位于voice_ai_agents/customer_support_voice_agent/customer_support_voice_agent.py

def crawl_documentation(firecrawl_api_key: str, url: str, output_dir: Optional[str] = None):
    firecrawl = FirecrawlApp(api_key=firecrawl_api_key)
    pages = []
    
    response = firecrawl.crawl_url(
        url,
        params={
            'limit': 5,
            'scrapeOptions': {
                'formats': ['markdown', 'html']
            }
        }
    )
    
    # 处理分页和内容提取...
    return pages

查询处理

异步函数process_query处理用户查询,包括向量搜索、回答生成和语音合成,代码位于voice_ai_agents/customer_support_voice_agent/customer_support_voice_agent.py

async def process_query(
    query: str,
    client: QdrantClient,
    embedding_model: TextEmbedding,
    processor_agent: Agent,
    tts_agent: Agent,
    collection_name: str,
    openai_api_key: str
):
    # 查询嵌入生成
    query_embedding = list(embedding_model.embed([query]))[0]
    
    # 向量搜索
    search_response = client.query_points(
        collection_name=collection_name,
        query=query_embedding.tolist(),
        limit=3,
        with_payload=True
    )
    
    # 上下文构建与智能体调用...
    # TTS生成与音频存储...
    
    return result

应用场景

企业客服

  • 24/7无间断服务,降低人力成本。
  • 统一知识库,确保回答一致性。
  • 多语言支持,覆盖全球客户。

产品支持

  • 实时解答用户关于产品文档的问题。
  • 语音响应提升 accessibility,适用于驾车或移动场景。
  • 自动引用文档来源,便于用户深入了解。

内部培训

  • 新员工快速查询公司政策和流程。
  • 技术团队检索开发文档和API参考。
  • 支持多部门定制化知识库。

总结与展望

客服语音智能体通过整合文档爬取、向量检索和语音合成技术,为企业提供了高效、智能的客户支持解决方案。未来可进一步优化:

  • 增加语音识别(ASR)功能,支持纯语音交互。
  • 扩展多轮对话能力,提供上下文连贯的服务。
  • 优化本地部署方案,满足数据隐私要求。

项目源码和更多示例请参考voice_ai_agents/customer_support_voice_agent目录,官方文档见README.md

【免费下载链接】awesome-llm-apps Collection of awesome LLM apps with RAG using OpenAI, Anthropic, Gemini and opensource models. 【免费下载链接】awesome-llm-apps 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-llm-apps

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐