Skip to content

Instantly share code, notes, and snippets.

@pataiadam
Created April 4, 2023 21:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pataiadam/5bdafd8ce59b08176f448b2bb2a4331f to your computer and use it in GitHub Desktop.
Save pataiadam/5bdafd8ce59b08176f448b2bb2a4331f to your computer and use it in GitHub Desktop.
jolvanezigy gpt bot csokival es adammal
const googleTTS = require("google-tts-api");
let mpv = require('node-mpv');
const play = async (json) => {
let {text} = JSON.parse(json)
// text max length is 200
text = text.substring(0, 199)
const url = googleTTS.getAudioUrl(text, { lang: "hu", slow: false, host: "https://translate.google.com" })
const mpvPlayer = new mpv();
mpvPlayer.speed(1.5)
await mpvPlayer.load(url)
return new Promise((resolve, reject) => {
mpvPlayer.on('stopped', function() {
resolve()
});
})
}
async function run() {
const {ChatGPTAPI} = (await import('chatgpt'))
console.log(ChatGPTAPI)
const alice = new ChatGPTAPI({
apiKey: process.env.OPENAI_API_KEY
})
const bob = new ChatGPTAPI({
apiKey: process.env.OPENAI_API_KEY
})
const topic = `Helyreigazítást akar az erdő nélküli lombkoronasétány miatt a polgármester`
const user1 = 'Ádám'
const user2 = 'Csoki'
const prompt = `Egy youtube-er vagy, a neved ${user1}. A jolvanezigy csatornan napi politikai hirekrol, kulonfele temakrol beszelgettek viccesen ${user2}-val.
En leszek ${user2}, Te leszel ${user1}. Mi ketten beszelgessunk az alabbi temarol, humorosan, egyszeruen:
===TEMA KEZDETE===
${topic}
===TEMA VEGE===
A valaszodnak JSON formatumunak KELL lennie, az alabbi strukturaval: {"name": "${user1}", "text": "...szoveg amit a ${user1} mond..."}. A valaszod MINDIG ebben a formaban irhatod csak!
En is mindig JSON formatumban valaszolok, a nevem ${user2}.
Csak 1-2 mondatot valaszolj, utana várd meg a valaszomat. Maximum 150 karakterrel valaszolj!
Soha se ismeteld meg magad es a masik fel valaszat, mindig uj mondatokat hasznalj, ne csak a masik fel mondatat masold vissza. Legyen folyton humoros, kicsit ercelodj, karcolj!.
`
let aliceRes = await alice.sendMessage(`${prompt}
Te kezded, mint ${user1}, es JSON!!!`)
console.log('A', aliceRes.text)
await play(`{"text": "Csoki, a mai cikk: ${topic}"}`)
await play(aliceRes.text)
console.log()
let bobRes = await bob.sendMessage(`${prompt}
En kezdem!
----
${aliceRes.text}`)
console.log('B', bobRes.text)
await play(bobRes.text)
console.log()
const p = `
HASZNALJ humort, szarkazmust vagy ironiat a mondataidban. A valaszodban beszelj politikarol, fideszrol, a kormany es ellenzek hibairol. Maximum 150 karakterrel valaszolj!`
while (true) {
aliceRes = await alice.sendMessage(bobRes.text + `${p}\n<folytasd a parbeszedet mint ${user1}, magyarul, ne erts egyet, ne ismeteld meg ${user2} valaszat. JSON formatumban valaszolj! JSON>`)
console.log('A', aliceRes.text)
await play(aliceRes.text)
console.log()
bobRes = await bob.sendMessage(aliceRes.text + `${p}\n<folytasd a parbeszedet mint ${user2}, magyarul, ne erts egyet, ne ismeteld meg ${user1} valaszat. JSON formatumban valaszolj! JSON>`)
console.log('B', bobRes.text)
await play(bobRes.text)
console.log()
}
}
run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment