- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
几天前我开始学习 Python,我做的第一件事是制作一个带有查询表单的 Python 应用程序,我们可以在其中提出问题并获得有声的文本到语音的答案,而前一天我发现发现有神经大人这样的表演,我想用技术术语来复制它 神经大人的工作原理是这样的:分析 Twitch Chat 并按常规向 ChatGPT 发送文本请求,然后当它收到来自 ChatGPT 的响应时,它会播放这种格式的响应“用户名,回复”
我发现这个任务很简单,并开始编写自己的代码,但我遇到了一些问题,我正在请求感兴趣的人帮助我,我准备支付 10 美元以获得合理的回应并指出我的错误,我在下面附上我失败的代码:
import tkinter as tk
import requests
import pyttsx3
import twitchio
import os
# Создание окна
root = tk.Tk()
root.title("Пример приложения с ChatGPT и озвучкой")
# Создание текстового поля и кнопки
text_field = tk.Entry(root, width=50)
text_field.pack()
button = tk.Button(root, text="Отправить")
# Создание объекта для озвучивания речи
engine = pyttsx3.init()
# Инициализация Twitch-клиента
bot_nickname = "pasha_tech"
bot_oauth = "YOUR_BOT_OAUTH_TOKEN" # замените "YOUR_BOT_OAUTH_TOKEN" на OAuth-токен вашего бота
bot = twitchio.Client(bot_nickname, oauth=bot_oauth)
# Функция для отправки запроса к API ChatGPT и получения ответа
def get_response(username, text):
url = "https://api.openai.com/v1/engines/davinci-codex/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer API_KEY" # замените "API_KEY" на ваш API ключ от ChatGPT
}
data = {
"prompt": f"Пользователь {username} написал в чате: {text}\nAI ответит:",
"max_tokens": 50,
"temperature": 0.7
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
result = response.json()["choices"][0]["text"]
else:
result = "Ошибка при обработке запроса"
# Отображение ответа в окне
response_label.config(text=result)
# Озвучивание ответа
engine.say(result)
engine.runAndWait()
# Функция-обработчик сообщений в чате Twitch
async def on_message(channel, user, message):
if user.name != bot_nickname:
# Отправка сообщения на обработку в ChatGPT
get_response(user.name, message)
# Функция для подключения к IRC-чату Twitch
async def connect_to_twitch_chat():
await bot.connect()
await bot.join(os.environ['CHANNEL_NAME']) # замените "CHANNEL_NAME" на имя канала, к которому подключается бот
print(f"Бот {bot_nickname} подключился к чату {os.environ['CHANNEL_NAME']}")
# Привязка функции к кнопке
button.config(command=get_response)
button.pack()
# Создание метки для отображения ответа
response_label = tk.Label(root, text="")
response_label.pack()
# Запуск бесконечного цикла обработки сообщений в чате Twitch
bot.loop.create_task(connect_to_twitch_chat())
bot.loop.run_forever()
root.mainloop()
使用这段代码我得到了错误:bot = twitchio.Client(bot_nickname, token=bot_token)TypeError:init() 为参数“token”获取了多个值,帮助我理解,这是我坐在这里想知道我的问题是什么的第 3 天
代码最初是通过ChatGPT生成的,请指出此服务可能存在的错误,以便我知道将来如何修复它们,谢谢!
最佳答案
我接近 AI Vtuber 项目的稳定版本,请改用新的 gpt-3.5-turbo 模型。此外,您还需要提供初始提示,以便我承担角色和反馈循环以提供短期内存(与机器人内存是自动的 chatgpt 不同)
https://www.youtube.com/watch?v=dkgJBcTitpE
尝试遵循文档中相同的代码结构:https://twitchio.dev/en/latest/quickstart.html
class Bot(commands.Bot):
def __init__(self):
# Initialise our Bot with our access token, prefix and a list of channels to join on boot...
# prefix can be a callable, which returns a list of strings or a string...
# initial_channels can also be a callable which returns a list of strings...
# --- GET YOUR TWITCH ACCEESS_TOKEN USING: https://twitchtokengenerator.com/ ----
super().__init__(token='ACCESS_TOKEN', prefix='?', initial_channels=['...'])
async def event_ready(self):
# Notify us when everything is ready!
# We are logged in and ready to chat and use commands...
print(f'Logged in as | {self.nick}')
print(f'User id is | {self.user_id}')
async def event_message(self, message):
# Messages with echo set to True are messages sent by the bot...
# For now we just want to ignore them...
if message.echo:
return
# ---------------PUT YOUR OPEN AI CODE HERE----------
# SOME VARIABLE
# user unique Id (never changes per account): message.author.id
# user chat name: message.author.name
# user's message you include in your prompt: message.content
# Since we have commands and are overriding the default `event_message`
# We must let the bot know we want to handle and invoke our commands...
await self.handle_commands(message)
# WHEN YOU SEND ?hello THIS STILL GOES THROUGH event_message() THEN CAUGHT BY THIS METHOD
@commands.command()
async def hello(self, ctx: commands.Context):
# Here we have a command hello, we can invoke our command with our prefix and command name
# e.g ?hello
# We can also give our commands aliases (different names) to invoke with.
# Send a hello back!
# Sending a reply back to the channel is easy... Below is an example.
await ctx.send(f'Hello {ctx.author.name}!')
bot = Bot()
bot.run() # bot.run() is blocking and will stop execution of any below code here until stopped or closed.
在开放的 Ai 代码块上集成此技术以赋予机器人内存和角色:https://github.com/daveshap/LongtermChatExternalSources
关于python - 我想为 twitch 创建我的 Neuro-sama 模拟,但是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75504586/
Youtube 等视频共享网站有一个视频缩略图端点 示例:http://img.youtube.com/vi/youtube_id/default.jpg 其中 youtube_id = 视频的id
我最近创建了一个 twitch 面板扩展,但我不知道如何上传它并使其可供安装。我看过 Twitch 扩展文档,但没有找到如何上传扩展。如果有人知道如何做到这一点,请分享您的知识。 这是我看过的文档ht
我想在我的网站中嵌入一个 twitch 流,但我希望它不会在您转到该页面时自动播放。我将如何在 iFrame 中执行此操作?我在 Internet 上找不到任何地方。 Watch live video
Twitch 引入了一项功能,当您打开流页面并导航到网站的不同部分时,允许视频在左下角继续播放而不会中断。这甚至在按下浏览器中的后退按钮时也有效,只有在关闭选项卡或手动输入您要转到的 URL 时才会中
只是想知道是否有使用 JQuery 或 twitch API 经验的人可以帮忙解决这个问题。基本上我试图获取用户名,但我不想单击按钮或将其显示在输入框中。 以下是 API 示例中的代码: $('#
我正在努力做到这一点,以便我可以在我的 twitch 机器人中注册第二部分:!test [var]。基本上,如果他们说 !test @jeff,它就可以说你好@jeff。 我正在使用tmi clien
我正在从辉煌的 tup 切换(或尝试)至 haskell shake作为我的构建系统.. 只是我不知道如何在更改时重建文件。 我当然可以使用 inotify 或像 filewatcher 这样的包装器
我想检索正在直播代码的用户列表。 此端点将提供直播流列表: curl -H 'Accept: application/vnd.twitchtv.v3+json' -X GET https://api.
我想为存档的 twitch 视频设置当前时间(例如 https://www.twitch.tv/videos/319946452)。我试过使用 video.currentTime 或模拟点击坐标但都没
所以我正在为我的 channel 开发一个基本的 Twitch Bot,代码如下: 配置.java import java.io.IOException; import org.jibble.pirc
我目前正在从事一个项目,为一家公司开发电子竞技流媒体日历。该应用程序运行良好,但问题是 twitch 仅允许您流式传输 flash,而对于 Android,在 Google 决定取消支持后,它就不能正
我刚刚尝试将 twitch.tv 聊天移到左侧,因为在左侧阅读聊天会更舒服。 我在 tampermonkey 中使用了这个脚本: document.addEventListener("DOMConte
我目前正在为 friend 的 twitch 流制作一个网站,我对如何实现 twitch 流感到非常困惑。我已经创建了一个带有“Twitchscreen”类的 div,但我不知道如何链接到 twitc
我知道这之前已经做过很多次了,但我对编码场景很陌生(相对较新)并且喜欢摆弄东西。我从来没有设法让任何东西真正发挥作用,对我来说没有用。我正在尝试制作一个 chrome 扩展,显示当前正在播放的在线《反
我对 CSS 中的 :hover 有疑问。 这是我的导航菜单 HTML 代码: 2D 3D 这是 CSS 代码: .nav { position: absolute; f
我想使用以下代码访问 twitch api。 package droa.app.twitch; import java.io.BufferedReader; import java.io.IOExce
我正在尝试为本地流媒体社区制作索引。 我正在着手编写一些模板代码。 下面是一个模型 - 勾号代表实时,X 代表离线(我的最终产品会更有吸引力 - 这只是为了可视化。) 我的代码模板 Title
我正在尝试为我 friend 的直播制作一个 Twitch 机器人,但在让它发送消息(或识别命令)时遇到一些问题。 我的代码: import socket,string HOST = "irc.twi
我开始使用 Python 制作一个简单的 Twitch 聊天机器人。连接正常,还可以看到其他人在聊天中发送的消息。然而,我的问题是,在使用命令时我似乎无法检测到它们。我可以获取聊天条目的用户名和消息,
我正在使用 Twitch api 和 python 来获取特定游戏(例如 Dota 2)的观众总数。以下代码获取游戏的当前观看人数: import requests def main(): h
我是一名优秀的程序员,十分优秀!