Пожалуйста, не стесняйтесь купить мне кофе, чтобы помочь поддержать этот проект.
Supy-это чат-бот для раздора, который может генерировать изображения с помощью локального генератора изображений (поток) и/или с Dall-E 3. Для чата он использует комбинацию JSON, CHATGPT и локальной поисковой системы для разговора со своими пользователями. Он будет индексировать сообщения вашего чата пользователя и использовать эти сообщения для создания профилей пользователей. Он также будет индексировать каждый канал на вашем сервере, к которому он имеет доступ.
Есть несколько версий Soupy.
Supy требует API API Openai к моделям CHATGPT. Поэтому часть Soupy в чате использует реальные деньги . Поколение изображений Dall-E 3 тоже. Вы можете пропустить Dall-E 3 Generation и использовать только поток локально.
Первоначальная настройка, в которой история канала с вашего сервера будет загружена и индексирована, и все пользователи на вашем сервере будут иметь профили, сделанные из них, стоит деньги через API CATGPT. Когда -нибудь я также буду поддерживать местные LLM, но пока нет.
Чтобы работать с потоком, я настоятельно рекомендую вам начать здесь, с официального репозитория Flux. Но как только у вас возникнут флюса, вы можете использовать soupy-gradio.py , включенный в этот репозиторий.
!flux (Local Model Model) , !generate (Dall-E 3) , !analyze (CHATGPT) и !transform (CHATGPT) для выполнения диапазона прохладных действий.BEHAVIOUR в .env . Но будьте осторожны с тем, как вы это меняете. Его формулировка важна для поддержания супи на треке. Перед настройкой Soupy убедитесь, что в вашей системе установлено следующее:
Начните с клонирования репозитория супи в местную машину:
git clone https://github.com/sneezeparty/soupy.git
cd soupy
Рекомендуется использовать виртуальную среду для управления зависимостями.
python -m venv soupy
Активировать виртуальную среду:
На macOS и Linux:
source soupy/bin/activate
В окнах:
soupyScriptsactivate
Установите необходимые пакеты Python, используя pip :
pip install -r requirements.txt
Создайте файл .env в корневом каталоге проекта и заполните его необходимыми переменными среды:
DISCORD_TOKEN=your_discord_bot_token
OPENAI_API_KEY=your_openai_api_key
CHANNEL_IDS=00,11
MAX_TOKENS=2500
MAX_TOKENS_RANDOM=75
MODEL_CHAT=gpt-4o-mini
UPDATE_INTERVAL_MINUTES=61
TRANSFORM="You give detailed and accurate descriptions, be specific in whatever ways you can, such as but not limited to colors, species, poses, orientations, objects, and contexts."
BEHAVIOUR="You are Soupy Dafoe, a sarcastic and witty Discord chatbot. You recall past interactions and conversations to inform your responses. Your replies are concise, straightforward, and infused with a bit of sarcasm, much like Jules from "Pulp Fiction." You are not overly positive and avoid asking questions unless necessary. Prioritize the most recent five messages when formulating your responses, especially if not directly mentioned. If the latest message is brief, focus your reply accordingly and consider ignoring extensive chat history. Integrate the user's profile information subtly to tailor your responses without making it the main focus. Be conversational, stay in the moment, and avoid being too random or wordy. Remember, you're kind of a jerk, but in a human-like way."
Обратите внимание, что Soupy будет иметь доступ ко всем каналам, которые он может получить. Но это будет отвечать на все сообщения в каналах, указанных выше. В противном случае он будет отвечать только случайным образом или когда @tagged.
В сценарии поиск «/Absolute/Directory/of/your/script/» и замените это абсолютным каталогом местоположения вашего сценария.
Apache Solr используется для индексации и поиска сообщений и профилей пользователей. Следуйте этим шагам для установки и настройки Solr для Soupy.
Скачать SOLR : посетите веб -сайт Apache Solr и загрузите последний стабильный релиз. Вы также можете использовать некоторых менеджеров пакетов - см.
Извлечь пакет
Установите Solr в качестве услуги : следуйте документации о точных шагах для этого процесса. Это не сложно, хотя. Вы можете сделать это.
Проверьте установку :
Откройте свой браузер и перейдите на http://localhost:8983/solr чтобы получить доступ к интерфейсу администратора Solr.
Supy требует единого ядра Solr с конкретными полями для эффективного индекса пользовательских профилей.
bin/solr create -c soupy
Добавьте необходимые поля в soupy -ядро для хранения профилей пользователей.
Доступ к интерфейсу администратора Solr :
Перейдите к http://localhost:8983/solr и выберите soupy Core.
Определите поля :
curl -X POST -H 'Content-type:application/json'
http://localhost:8983/solr/soupy/schema
-d '{
"add-field": {
"name": "id",
"type": "string",
"indexed": true,
"stored": true,
"required": true,
"multiValued": false
}
}'
или этот
curl -X POST -H "Content-Type: application/json"
"http://localhost:8983/solr/soupy/schema"
-d '{
"add-field":{
"name":"user_problems",
"type":"text_general",
"indexed":true,
"stored":true
}
}'
Добавьте необходимые поля в soupy -ядро для хранения профилей пользователей и информации о каналах.
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
<field name="username" type="string" indexed="true" stored="true"/>
<field name="nicknames" type="string" indexed="true" stored="true" multiValued="true"/>
<field name="join_date" type="date" indexed="true" stored="true"/>
<field name="political_party" type="string" indexed="true" stored="true"/>
<field name="user_job_career" type="text_general" indexed="true" stored="true"/>
<field name="user_family_friends" type="text_general" indexed="true" stored="true"/>
<field name="user_activities" type="text_general" indexed="true" stored="true"/>
<field name="opinions_about_games" type="text_general" indexed="true" stored="true"/>
<field name="opinions_about_movies" type="text_general" indexed="true" stored="true"/>
<field name="opinions_about_music" type="text_general" indexed="true" stored="true"/>
<field name="opinions_about_television" type="text_general" indexed="true" stored="true"/>
<field name="opinions_about_life" type="text_general" indexed="true" stored="true"/>
<field name="opinions_about_food" type="text_general" indexed="true" stored="true"/>
<field name="general_opinions" type="text_general" indexed="true" stored="true"/>
<field name="opinions_about_politics" type="text_general" indexed="true" stored="true"/>
<field name="personality_traits" type="text_general" indexed="true" stored="true"/>
<field name="hobbies" type="text_general" indexed="true" stored="true"/>
<field name="user_interests" type="text_general" indexed="true" stored="true"/>
<field name="user_problems" type="text_general" indexed="true" stored="true"/>
<field name="tech_interests" type="text_general" indexed="true" stored="true"/>
<field name="opinions_about_technology" type="text_general" indexed="true" stored="true"/>
<field name="sports_interests" type="text_general" indexed="true" stored="true"/>
<field name="opinions_about_sports" type="text_general" indexed="true" stored="true"/>
<field name="book_preferences" type="text_general" indexed="true" stored="true"/>
<field name="opinions_about_books" type="text_general" indexed="true" stored="true"/>
<field name="art_interests" type="text_general" indexed="true" stored="true"/>
<field name="opinions_about_art" type="text_general" indexed="true" stored="true"/>
<field name="health_concerns" type="text_general" indexed="true" stored="true"/>
<field name="health_habits" type="text_general" indexed="true" stored="true"/>
<field name="science_interests" type="text_general" indexed="true" stored="true"/>
<field name="opinions_about_science" type="text_general" indexed="true" stored="true"/>
<field name="travel_preferences" type="text_general" indexed="true" stored="true"/>
<field name="travel_experiences" type="text_general" indexed="true" stored="true"/>
<field name="food_preferences" type="text_general" indexed="true" stored="true"/>
<field name="opinions_about_food" type="text_general" indexed="true" stored="true"/>
<field name="last_updated" type="date" indexed="true" stored="true"/>
<field name="channel_id" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
<field name="username" type="string" indexed="true" stored="true"/>
<field name="content" type="text_general" indexed="true" stored="true"/>
<field name="timestamp" type="pdate" indexed="true" stored="true"/>
Сделать изменения :
После добавления всех полей совершите изменения, чтобы сделать их эффективными.
После завершения этапов установки и конфигурации вы можете запустить бота, используя следующие команды. Первый запуск займет некоторое время, в зависимости от деятельности на вашем сервере и количестве пользователей. Это может занять минуты или часы. Вывод терминала скажет вам, чем он занимается.
python soupy-solr.py
ИЛИ
python soupy-flux.py
И
python gradio-soupy.py
Убедитесь, что вы находитесь в виртуальной среде и правильном каталоге, где находится soupy .
gradio-soupy.py -это бэк-энд на основе Gradio для потока. Вы также можете получить доступ к этому через браузер.
!fluxСоздайте изображение, используя модель Flux с поддержкой различных модификаторов и интерактивных кнопок для дальнейшей настройки.
И с модификатором -из -за или кнопкой «Переписать», например:
Модификаторы :
--wide : генерирует широкое изображение (1920x1024).--tall : генерирует высокое изображение (1024x1920).--small : генерирует небольшое изображение (512x512).--fancy : уточняет подсказку быть более креативным и подробным. Это использует Chatgpt через API.--seed <number> : используйте конкретное семя для генерации изображений.Использование :
!flux A mystical forest with glowing plants --tall
После создания изображения с командой !flux Soupy предоставляет интерактивные кнопки для дальнейшей настройки:
Remix : генерирует новое изображение на основе существующей подсказки, с новым случайным семенем.Rewrite : уточняет подсказку повышения творчества и деталей. Это использует API Chatgpt ( такой же, как и модификатор --fancy ).Wide : Регулирует размеры изображения в широкий формат.Tall : отрегулирует размеры изображения в высокий формат. !generateСоздайте изображение, используя Dall-E 3 на основе текстовой подсказки с необязательными модификаторами. Это может быть устарело в ближайшее время.
Модификаторы :
--wide : генерирует широкое изображение (1920x1024).--tall : генерирует высокое изображение (1024x1920).Использование :
!generate A futuristic city skyline at sunset --wide
!analyzeПроанализируйте прикрепленное изображение на основе предоставленных инструкций, таких как перевод текста в изображении или идентификация объектов и их атрибуты.
Использование :
!analyze Identify all the animals in this image.
!analyze Describe this image forensically.
Прикрепите изображение при использовании этой команды.
!8ballЗадайте Волшебному 8-мячу вопрос. Не использует LLM или какой -либо ML.
Использование :
!8ball Will I get an A on my exam?
!whattimeПринесите и покажите текущее время в указанном городе.
Использование :
!whattime New York
Этот проект лицензирован по лицензии MIT.
Лицензия MIT Copyright (C) 2024 Sneezeparty
Настоящим разрешено, бесплатно, любому лицу, получающему копию этого программного обеспечения и связанные с ними файлы документации («Программное обеспечение»), для работы в программном обеспечении без ограничений, включая, помимо прочего, права на использование, копирование, изменение, объединение, публикацию, распределение, сублиценность и/или продавать копии программного обеспечения и разрешения, которые должны быть в соответствии с указаниями. Включено во все копии или существенные части программного обеспечения.
Программное обеспечение предоставляется «как есть», без гарантии любого рода, явного или подразумеваемого, включая, помимо прочего, гарантии товарной пригодности, пригодности для определенной цели и несоответствия. Ни в коем случае авторы или владельцы авторских прав не будут нести ответственность за любые претензии, убытки или другую ответственность, будь то в действии контракта, деликт или иным образом, возникающие из или в связи с программным обеспечением или использованием или другими сделками в программном обеспечении.
Если вы сталкиваетесь с какими -либо проблемами или у вас есть вопросы, не стесняйтесь открывать проблему в разделе «Проблемы GitHub» в репозитории.
Купите мне кофе, чтобы помочь поддержать этот проект.