python实战(五)——构建自己的大模型助手

一、任务目标

        本文将利用大语言模型强大的对话能力,搭建一个PC端问答助手。具体来说,我们将使用API来调用我们想要的大模型,并结合Prompt让大模型根据任务类型生成对应的输出。为了更方便地调用大模型助手,我们将结合python第三方库中的语音识别库进行开发,实现调用麦克风语音输入和音箱语音响应的人机交互。

二、简易版问答助手

        得益于目前高度集成的工具库,我们只需要少量的代码便可以实现语音的交互以及大模型的调用,这里直接给出代码:

import pyttsx3
import openai
import random
import speech_recognition as sr


# 使用默认麦克风
recognizer = sr.Recognizer()
microphone = sr.Microphone()
# 初始化tts引擎
engine = pyttsx3.init()
# 设置发音人的语音
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)
# 设置发音人的语速
engine.setProperty('rate', 200)

# api
openai.api_key = "your api key"
openai.api_base = "your api base"

# 持续识别语音,直到用户输入退出指令
while True:
    with microphone as source:
        print("请开始说话...")
        audio = recognizer.listen(source)

    try:
        # 将音频转换为文字
        print('语音识别中...')
        text = recognizer.recognize_google(audio, language='zh-CN')
        print(f"你说了:{text}")
        # 要转换的文本
        # 这里使用一个简单的触发词
        if '嘿小娜' == text:
            responses = ['您好,有什么可以帮您的吗?', '在呢!有什么吩咐?', '需要我做些什么?']
            response = random.choice(responses)
            # 将文本转换为语音
            engine.say(response)
            # 播放声音
            engine.runAndWait()
        # 理解用户输入意图
        elif '嘿小娜' in text and '再见' not in text:
            chat_completion = openai.ChatCompletion.create(
                model="gpt-3.5-turbo",
                messages=[{"role": "system",
                           "content": "你是一个私人的电脑语音助手,名字叫小娜,你将以尊敬的语气回答你主人提出的问题。请注意,输入给你的文本是麦克风语音转化成的汉语文本,没有标点符号,你需要根据语境进行标点符号位置的判断从而理解语义,并回答相应的问题。需要注意的是,你回答的文字应当在50个汉字以内。"},
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值