une application de bot fonctionnant sur Tencent QQ qui intègre les capacités de chatbot GPT avec la peinture AI.
Une application robotique fonctionnant sur Tencent QQ qui intègre des capacités de chat gpt avec ai painting.
En raison d'une énergie personnelle limitée, ce projet s'adresse actuellement principalement aux utilisateurs chinois. Si j'ai le temps à l'avenir, je pourrai ajouter davantage de support pour l'internationalisation. Pour les utilisateurs anglais, cela ne devrait pas être difficile à comprendre à l'aide des noms de variables dans le fichier. Vous pouvez également traduire ce fichier Lisez-moi en anglais pour vous aider à comprendre ce projet. L'idée principale est d'utiliser des invites pour guider l'insertion du texte d'identification afin que le programme reconnaisse et exécute des instructions. que les services vocaux, la gestion de groupe et l'analyse de l'image de l'utilisateur(a été mis en œuvre par visual-chatgpt). Si ce projet peut vous inspirer ou vous aider, j'en serais honoré.
Il existe un projet dérivé modifié en fonction de ce projet et ajoutant des capacités d'analyse de voix et d'images Vits : https://github.com/AGuanDao/mix-chatgpt-and-ai-painting-and-vits
Démarrez l'API à partir de n'importe quel projet dans selfhostedAI (j'ai uniquement testé RWKV-Runner, recommandé)
Ensuite, dans config.py, définissez use_selfhostedllm sur True. À ce stade, utilisez #gpt pour passer au mode GPT3 d'origine et le modèle local sera appelé.
show all ...
en bas. Windows utilise généralement windows_amd64.exe Depuis que go-cqhttp a annoncé qu'il arrêterait la maintenance, vous pouvez maintenant utiliser https://github.com/LLOneBot. /LLOneBot comme alternative, activez-le dans les paramètres. Connectez-vous simplement au Websocket de transfert et le reste du contenu reste comme d'habitude.models/Stable-diffusion
de stable-diffusion-webuipython webui.py --medvram --deepdanbooru --xformers --api --enable-insecure-extension-access
, notez que le paramètre --api
doit être inclus, si vous utilisez le package d'intégration de quelqu'un d'autre, Vous devrez peut-être ajouter manuellement le paramètre --api
au script de démarrage. Veuillez vous référer à常见问题
ci-dessus.git clone https://github.com/josStorer/mix-chatgpt-and-ai-painting
et installez les dépendances pip install -r requirements.txt
api_key
/ email,password
, master_id
, bot_id
. Il est recommandé que les variables modifiées en tenant compte de la situation réelle soient : use_chatgpt
, working_groups
, auth_vip_for_all
, local_mode
, autres s'il vous plaît Prenez votre propre décisionpython main.py
win+tab
pour créer un nouveau bureau pour faire d'autres choses, afin que votre ordinateur puisse être utilisé par le groupe quand il est inactif. Jouons avec des amis.AttributeError: 'Error' object has no attribute 'message'
"proxy": "你的代理地址"
après le mot de passe de l'e-mail dans main.py#L119. n'avez pas de proxy, veuillez définir use_chatgpt
sur False
et remplir api_key
.错误: 'images'
ou错误: 404: {"detail":"Not Found"}
--api
lors du démarrage. Si vous utilisez le package d'intégration de quelqu'un d'autre, veuillez rechercher le fichier de démarrage approprié (généralement avec un suffixe .bat) et trouver la ligne avec. paramètres qu'il contient, tels que --deepdanbooru
, --xformers
, ajoutez --api
à la fin, faites attention à l'espace entre les paramètres, s'il y a un lanceur, veuillez rechercher et vérifier les options telles que启用API
/暴露API
错误: [WinError 3] The system cannot find the path specified
HOME
sur un certain chemin de dossier pour stocker les informations de configuration.git pull
pour extraire les mises à jour de ce projet et assurez-vous d'utiliser pip install -r requirements.txt --upgrade
pour mettre à niveau les bibliothèques dépendantes.device.json
dans le même répertoire, ouvrez et recherchez protocol
, modifiez la valeur en 2
et redémarrez le programme pour vous connectermain.py
, recherchez run_forever
et supprimez reconnect=3
entre parenthèsesmain.py
pour configurer le proxy : proxy = { 'http' : "http://127.0.0.1:端口号" , 'https' : "http://127.0.0.1:端口号" }
openai . proxy = proxy
Si vous rencontrez des problèmes d'utilisation, vous pouvez rejoindre le groupe QQ 283430436 pour communiquer ou l'essayer.
@机器人1号#上线
, ce qui convient aux situations où il y a plusieurs robots dans le groupe, et l'utilisation directe de la commande siren affectera tous les robots. .instruction | Exemple | illustrer |
---|---|---|
#gpttoggle | #gpttoggle | Basculer entre les modes gpt3 et chatgpt |
#en ligne | #en ligne | Mettez le robot de discussion de groupe en ligne pour lui permettre d'effectuer des appels openai et de peindre par IA. |
#hors ligne | #hors ligne | Mettez le robot de discussion de groupe hors ligne afin qu'il ne soit pas autorisé à effectuer des appels openai et des dessins IA |
#dessiner | #draw图512x512.girl | Laissez le robot dessiner des images dans la discussion de groupe, par exemple : #画图girl , utilisez des points ou des points-virgules pour séparer, autorisez certaines opérations de raccourci, utilisez des accolades pour permettre des opérations de configuration json détaillées, veuillez utiliser #帮助 pour afficher les détails |
#d | #d 512x512.fille | Opérations de dessin rapides que les utilisateurs de la liste VIP sont autorisés à utiliser, l'effet est le même que #画图 |
#retirer | #retirer | Annuler le dernier message du bot déclenché par vous |
#黑黑 | #黑黑123456 | Interdire à cet utilisateur d'utiliser des robots dans cette discussion de groupe |
#congédiement | #lift123456 | Débloquer cet utilisateur |
#VIP | #vip123456 | Ajoutez l'utilisateur à la liste VIP. Les utilisateurs de la liste VIP peuvent utiliser la commande #d ou appeler le robot via at pour exécuter la conversation openai api. |
#unvip | #unvip 123456 | Supprimer cet utilisateur de la liste VIP |
#conversationpropre | #conversationpropre | Nettoyer le contexte de la conversation (lorsque le contenu de la conversation précédente était trop long et a fait échouer la requête, vous pouvez choisir de le nettoyer) |
#aide | #aide | Afficher les informations d'aide pour les utilisateurs ordinaires du groupe, à l'exclusion des instructions VIP et des instructions principales |
#défaut | #défaut | Affiche la configuration json par défaut de #画图 . Vous pouvez directement copier ces informations et les modifier vous-même, puis les renvoyer pour appeler via #画图{...} |
#listenoire | #listenoire | Afficher la liste noire |
#au commutateur | #au commutateur | Changez le mode de réponse du robot. Par défaut, le robot at est toujours requis pour la réponse ouverte. Après le changement, vous pouvez avoir une conversation directe et répondre à chaque phrase. |
#modèle | #modelanything-v4 | Entrez directement #model pour afficher la liste des modèles actuellement actifs et de tous les modèles disponibles. Entrez #model 模型名 pour changer de modèle. Le nom du modèle n'a pas besoin d'être complet, il doit seulement exister dans le nom du modèle cible. sensible à la casse. Par exemple, un modèle complet nommé anything-v4.0-pruned.safetensors , vous pouvez saisir directement #model v4 pour changer. |
#vae | #vae Anything-V3.0.vae.pt | Entrez directement #vae pour afficher le VAE actuellement utilisé. Entrez #vae VAE名称 pour changer de VAE. Notez que contrairement au changement de modèle, le changement de VAE doit correspondre complètement au nom du fichier. |
#équilibre | #équilibre | Afficher le solde de la clé API actuellement utilisée |
Modifiez la fonction on_message dans main.py et ws_wrapper.py pour essayer de développer des applications robotiques pour d'autres programmes que QQ
Au début, ce projet n'était qu'un jouet pour les amis de la sculpture sur sable. Récemment, alors que je travaillais sur un modèle réel, j'ai intégré la fonction de dialogue gpt. , alors je l'ai rendu open source.
L'idée principale peut être comprise en consultant l'invite de config.py. Des idées similaires peuvent également être utilisées pour générer des conversations vocales, gérer des discussions de groupe, etc. C'est juste pour inspirer les autres. Tout le monde est invité à le créer et à le modifier.
Le code et les journaux git sont très longs, car ce n'était qu'un projet jouet depuis le début, et il a été construit directement avec une navette. De plus, les enregistrements contiennent également des informations privées telles que mon propre nom de domaine et ma clé, j'ai donc créé directement. un nouveau projet sans aucun journal.