Maison  >  Article  >  Périphériques technologiques  >  J'ai découvert une autre façon intéressante de jouer à ChatGPT et de la partager avec tout le monde.

J'ai découvert une autre façon intéressante de jouer à ChatGPT et de la partager avec tout le monde.

PHPz
PHPzavant
2023-04-08 12:01:031803parcourir

Un fan a déjà écrit pour vous comment connecter ChatGPT à WeChat et DingTalk. Si vous ne l'avez pas vu, vous pouvez lire l'article devant le compte officiel. Récemment, j'ai découvert un gameplay intéressant que j'ai trouvé le temps de mettre en œuvre. ça pendant le week-end. Ça fait du bien. Pas mal, partagez-le avec tout le monde.

Contexte

La cause du problème est qu'Afan a vu un tel message dans le cercle d'amis. Les informations sensibles ont été supprimées. Le but est évidemment de connecter OpenAI à la planète de la connaissance. planète. Posez une question et OpenAI répondra automatiquement à la question de l'utilisateur correspondant et en informera l'utilisateur.

Jai découvert une autre façon intéressante de jouer à ChatGPT et de la partager avec tout le monde.

C'est très intéressant de voir cela. Pour les blogueurs qui dirigent Knowledge Planet, en particulier les blogueurs techniques, de nombreux points de connaissances techniques simples peuvent être résolus grâce à l'automatisation sans trop d'effort.

Certains amis peuvent se demander quelle est la différence entre ceci et le Baidu des utilisateurs ?

Tant que les amis qui ont utilisé OpenAI ont une compréhension approfondie, de nombreuses annonces de réponses sont recherchées sur Baidu. Il faut souvent du temps pour trouver du contenu utile dans une grande quantité de contenu similaire.

Les réponses fournies par OpenAI sont souvent claires et organisées. Bien qu'il ne puisse pas donner de réponses exactes à de nombreuses questions urgentes, il peut néanmoins être très précis pour répondre à certains points de connaissances techniques.

Voici quelques cas que les fans ont vus, vous pouvez y jeter un oeil

peut écrire du code

Jai découvert une autre façon intéressante de jouer à ChatGPT et de la partager avec tout le monde.

peut répondre à des questions

Jai découvert une autre façon intéressante de jouer à ChatGPT et de la partager avec tout le monde.

peut écrire des contours

Jai découvert une autre façon intéressante de jouer à ChatGPT et de la partager avec tout le monde.

peut analyser les performances

Jai découvert une autre façon intéressante de jouer à ChatGPT et de la partager avec tout le monde.

Construction

Après avoir lu le cas ci-dessus, vous pouvez commencer à le construire. Tout d'abord, nous devons savoir comment implémenter cette fonction de réponse intelligente automatique. L'idée est très simple, c'est-à-dire d'abord obtenir la liste des questions. recevoir une réponse, puis parcourir La question demande l'interface OpenAI, puis réécrit le résultat renvoyé pour informer l'utilisateur correspondant. Nous devons gérer ce processus via une interrogation de tâches planifiée.

Pour résumer, il faut préparer les choses suivantes

  1. Un compte Knowledge Planet qui peut être interrogé, c'est-à-dire la personne interrogée
  2. La CLE API correspondant au compte OpenAI Cette étape est relativement fastidieuse, mais les articles précédents ont expliqué comment obtenir des idées, ce qui dépasse le cadre de cet article. Si vous êtes intéressé, consultez les articles précédents.
  3. Outils ou plates-formes de planification, ou commandes de synchronisation des systèmes Linux ;
  4. Programmes ou scripts qui implémentent les requêtes API

Programmation

Les quatre points ci-dessus sont nécessaires, mais le plus important est bien sûr d'écrire du code, selon notre idée ci-dessus, notre programme doit appeler trois interfaces

  1. pour obtenir la liste des questions ;
  2. pour demander à OpenAI d'obtenir les réponses
  3. pour réécrire les réponses pour avertir l'utilisateur

 ; à ces trois interfaces tour à tour Comment se connecter ? Je m'explique à l'avance. La plateforme de planification utilisée par Afan pour plus de simplicité est XXL-JOB. Le script de tâche d'exécution correspondant est écrit en Nodejs.

Utilisez le compte préparé de la personne à qui l'on demande de se connecter à la version Web de Knowledge Planet. Après avoir entré la planète correspondante, vous pouvez voir un menu de [En attente de ma réponse].

Jai découvert une autre façon intéressante de jouer à ChatGPT et de la partager avec tout le monde.

Nous ouvrons la console du navigateur, cliquons sur le bouton [Attendez que je réponde] et vous pouvez voir l'adresse d'interface correspondante de la demande

Jai découvert une autre façon intéressante de jouer à ChatGPT et de la partager avec tout le monde.

C'est la première adresse d'interface que nous voulons pour demander, veuillez l'écrire, puis obtenir les informations de cookie correspondantes et certains paramètres via l'en-tête de la demande, afin que nous puissions faire la demande d'interface via le code et obtenir la liste des questions auxquelles il faut répondre.

var options = {
url: ZSXQ_UNANSWER_URL,
headers: {
'accept': 'application/json, text/plain, */*',
'cookie': cookie,
'User-Agent': 'Mozilla/5.0 xxxx',
'x-timestamp': Math.floor(Date.now() / 1000),
}
};

request(options, callback);

Après avoir obtenu la liste de questions, nous pouvons commencer à parcourir l'interface de requête OpenAI pour obtenir la réponse dans la méthode de rappel. L'adresse de l'interface d'OpenAI est la suivante https://api.openai.com/v1/completions.

function callback(error, response, body) {
if (!error && response.statusCode === 200) {
let json = JSON.parse(body);
if (!json.succeeded) {
console.log("succeeded false")
process.exit(0)
}
if (json.resp_data.topics.length > 0) {
let length = json.resp_data.topics.length;
for (let i = 0; i < length; i++) {
let question = json.resp_data.topics[i].question;
topicId = json.resp_data.topics[i].topic_id;
console.log(topicId + ":" + question.text)
let openRequestOption = {
url: OPEN_AI_URL,
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer " + API_KEY,
"topicId": topicId
},
timeout: 120000,
body: {
"model": "text-davinci-003",
"prompt": question.text,
"max_tokens": 2000,
"temperature": 0.9
},
json: true
};
request.post(openRequestOption, completionsCallBack)
}
} else {
console.log("topics empty")
process.exit(0)
}
} else {
console.log("get questions error")
process.exit(-1)
}
}

Écrivez la réponse obtenue à l'utilisateur. Ici, nous avons besoin de la troisième adresse, qui peut être obtenue de la même manière que la première adresse. Faites une réponse sur la page et vous pourrez obtenir l'adresse de réponse correspondante, mais nous en avons besoin. Remplacez l'ID du thème par vous-même. C'est relativement simple, alors ne prenez pas de capture d'écran et téléchargez simplement le code.

// 智能回答
function completionsCallBack(error, response, body) {
if (!error && response.statusCode === 200) {
if (null != body && body.choices.length > 0) {
let reply = body.choices[0].text;
console.log(response.request.headers.topicId + ":" + reply);
if (null != reply && reply.length > 0) {
// 回答问题并通知提问者
let answerOptions = {
url: ZSXQ_ANSWER_URL + "/" + response.request.headers.topicId + "/answer",
headers: {
'accept': 'application/json, text/plain, */*',
'cookie': cookie,
'User-Agent': 'Mozilla/5.0 xxx',
'x-timestamp': Math.floor(Date.now() / 1000),
},
timeout: 12000,
body: {
"req_data": {
"image_ids": [],
"silenced": silenced,
"text": reply
}
},
json: true
}
request.post(answerOptions, answerCallBack)
}
}
} else {
console.log("get answer error")
process.exit(-1)
}
}

// 回答后调用
function answerCallBack(error, response, body) {
if (response.statusCode === 200 && body.succeeded) {
console.log(":智能回答成功");
//process.exit(0) 
} else {
console.log(":智能回答失败");
//process.exit(-1)
}
}

À ce stade, la fonction correspondante a été essentiellement implémentée. Voici quelques détails

  1. Dans les paramètres de l'interface de réponse en écriture, silencieux signifie s'il faut avertir d'autres personnes, vrai signifie uniquement notifier la personne qui pose la question et faux. signifie avertir tout le monde. Notifier tout le monde signifie que tout le monde peut voir la réponse. Sinon, seule la personne qui a posé la question verra la réponse. Elle peut être définie sur true au premier démarrage, et elle peut être définie sur false lors de la connexion. plus tard.
  2. Étant donné que cette fonction doit être déclenchée via des tâches planifiées, afin d'éviter des problèmes inutiles, vous pouvez définir vous-même une heure raisonnable. Par exemple, ne l'appelez pas au milieu de la nuit pour répondre aux questions des autres plus tard. n'aura aucun impact. Fréquence de planification Ne l'utilisez pas trop souvent, utilisez-le de manière discrète.

Effet

Configurez une tâche NodeJs sur XXL-JOB​,

Jai découvert une autre façon intéressante de jouer à ChatGPT et de la partager avec tout le monde.

Jai découvert une autre façon intéressante de jouer à ChatGPT et de la partager avec tout le monde.

Jai découvert une autre façon intéressante de jouer à ChatGPT et de la partager avec tout le monde.

Vous pouvez voir qu'Afen a spécifié l'heure correspondante avant d'interroger Vous pouvez le voir La réponse intelligente est. réussi, et la correspondance peut être affichée normalement dans Knowledge Planet. Cool~

Résumé

Aujourd'hui, je vous propose une autre façon de jouer à OpenAI. Ah Fan a proposé plusieurs façons de jouer, qui sont toutes apprises et recherchées par vous-même. Vous pouvez simplement y jouer par vous-même. savoir jouer. Nous pouvons maintenir notre enthousiasme lorsque nous rencontrons de nouvelles choses et technologies. Nous ne pouvons pas être conservateurs lorsque de nouvelles technologies arrivent, mais nous devons les accueillir.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer