Skip to content

husanr/siri_gpt_laf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

三分钟把ChatGPT接入Siri,让你的语音助手化身智能AI

最近,各种各样使用ChatGPT的方式都出现了,但是有很多都需要在电脑操作,或者点击别人的各种各样的链接,而且有些可能还要魔法上网才能实现,这些都是稍微有点繁琐的。

那么,最方便的还是直接使用我们的手机一键打开或者语音唤醒就可以实现链接ChatGPT的,下边我们就来看下怎么实现吧!

1. 效果展示

  • 连续对话

  • 手动输入

2. 云函数实现

我们仍然使用Laf云平台来实现,如何注册Laf和安装依赖,见上篇文章 《使用Laf云平台,两步将ChatGPT接入微信公众号(含代码)》

  • 创建Siri云函数

创建云函数步骤

// siri.js
// 引入必要的库
// 引入必要的库
import cloud from '@lafjs/cloud';
const { v4: uuidv4 } = require('uuid');

// 创建数据库连接
const db = cloud.database();
const ChatTable = db.collection('siri')


// 设置key和模型
const OPENAI_KEY = process.env.OPENAI_KEY || "YOUR API-Key"


export async function main(params, context) {
  console.log('siri入参:', params);
  const { question, cid } = params.body;

  // 创建一个id
  const chatId = cid ? cid : uuidv4();

  // 获取上下文 id
  const chats = await ChatTable.where({
    chatId
  }).orderBy("createdAt", "desc").getOne();

  console.log("获取上下文", chats)

  const parentId = chats?.data?.parentMessageId

  const { ChatGPTAPI } = await import('chatgpt')
  let api = cloud.shared.get('api')
  if (!api) {
    api = new ChatGPTAPI({ apiKey: OPENAI_KEY })
    cloud.shared.set('api', api)
  }

  try {

    // 如果有上下文 id,就带上
    let res;

    if (parentId) {
      res = await api.sendMessage(question, { parentMessageId: parentId })
    } else {
      res = await api.sendMessage(question)
    }
    console.log("res", res)
    const responseMessage = res.detail.choices[0].message;

    // 保存返回结果
    await ChatTable.add({ chatId, ...responseMessage, parentMessageId: res.parentMessageId });

    // 返回结果
    return { reply: responseMessage.content, cid: chatId };

  } catch (error) {
    // 打印错误日志
    console.log('error', error);
    if (error.statusCode === 429) {
      return {
        error: '问题太多了,我有点眩晕,请稍后再试'
      }
    }
    return {
      error: "问题太难了 出错了. (uДu〃).",
    }
  }
};

最新代码可见:https://husanr.github.io/views/ChatGPT/siri

3. 添加快捷指令

  • 添加过之后,在快捷指令中找到刚添加打开机器人快捷指令,点击右上角三个点进入编辑页面,然后把上边发布的Siri云函数的地址复制粘贴到文本的位置,然后点击完成。

  • 到此,语音助手设置完成,你可以通过语音嘿 Siri,打开机器人 唤醒带有ChatGPT的语音助手了,快去体验吧!

  • 如果你想要在手机主屏幕通过输入文字与ChatGPT交互,那么你可以把快捷指令添加到主屏幕,如下:

大功告成!

关注我的公众号,更多精彩内容等你来看!

About

把你的siri变成真正的智能AI助手

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published