Gaianet
Установка собственного домена и подключение нод
Для работы нод через персональный домен необходимы GaiaCredits.
Способы получения GaiaCredits:
- Бесплатно – 500 GaiaCredits раз в день.
- Покупка домена и имени – позволяет получить увеличенное количество GaiaCredits сразу.
- В зависимости от стоимости домена предоставляется дополнительный бонус на фарм поинтов.
- Чем выше цена домена, тем больше поинтов можно зарабатывать через него.
Можете пропустить этот шаг с покупкой платнго имени и купить сразу домен. после чего получить имя бесплатно.(так же как и платно но у вас должна появиться 100% скидка на имя)
Покупка и настройка домена для работы с нодами
- Покупка платного имени
Перейдите на сайт Gaia Domain Name и приобретите платное имя.
Используйте промокод RaWyvC для получения дополнительной скидки.
- Подтверждение транзакции
После покупки перейдите в раздел управления активами и дождитесь, пока ваше имя появится в списке. - Настройка домена
- Нажмите кнопку Launch Domain.
- Введите название, описание и загрузите фото.
- Нажмите Next Step.
- Выберите имя и подтвердите выбор.
- Выберите единственного доступного провайдера и нажмите Далее.
- Покупка домена
Проверка статуса домена
Перейдите в раздел управления доменами и убедитесь, что ваш домен успешно запущен.
Переход к серверу и установка ноды
После успешного запуска домена приступаем к установке ноды на сервер.
Шаг 1: Установка необходимых пакетов и зависимостей
0. Убиваем все процессы на порту :8080
sudo fuser -k 8080/tcp
1. Обновите систему и установите необходимые пакеты:
sudo apt update sudo apt upgrade -y sudo apt install -y python3-pip python3-dev python3-venv curl git
2. Установите aiohttp и другие зависимости для Python:
pip3 install aiohttp
3. Установите gaianet и другие зависимости:
curl -sSfL 'https://github.com/GaiaNet-AI/gaianet-node/releases/latest/download/install.sh' | bash
source ~/.bashrc
4. Убедитесь, что на сервере установлены необходимые инструменты:
sudo apt install -y build-essential
apt install tmux
Шаг 2: Инициализация и запуск ноды
1. Инициализируйте ноду с конфигурацией выбранной модели:
gaianet init --config https://raw.gaianet.ai/qwen-1.5-0.5b-chat/config.json
gaianet start
Подключение ноды к домену
Получение идентификаторов ноды
Введите следующую команду в терминале:
gaianet info
Скопируйте Node ID и Device ID.
- Привязка ноды к аккаунту GaiaNet
- Перейдите на страницу управления нодами.
- Нажмите кнопку Connect new node.
- Введите Node ID и Device ID. и подтвердите транзакцию.
- Присоединение ноды к домену
Найдите в поиске свой домен и подключитесь.
Если требуется дополнительное подтверждение, перейдите в соответствующий раздел настроек и разрешите подключение.
https://www.gaianet.ai/domain-management/domain
- Перейдите на страницу управления API-ключами.
- Создайте новый API-ключ.
- Запишите ключ в надежное место — он понадобится для работы бота.
Настройка бота для отправки сообщений на домен
Вернитесь в терминал и создайте скрипт, который будет взаимодействовать с нодой через API.
Вставьте в него код для отправки запросов на ваш домен.
Замените домен на свой
nano gaia_bot.py
import aiohttp
import asyncio
import random
import os
# URL API Gaia
API_URL = "https://вашеимя.gaia.domains/v1/chat/completions"
GAIA_API_KEY = os.getenv("GAIA_API_KEY")
# Заголовки запроса
HEADERS = {
"Authorization": f"Bearer {GAIA_API_KEY}",
"Accept": "application/json",
"Content-Type": "application/json"
}
# Функция для чтения фраз и ролей из файлов
def load_from_file(file_name):
with open(file_name, "r") as file:
return [line.strip() for line in file.readlines()]
# Загрузка ролей и фраз
roles = load_from_file("roles.txt")
phrases = load_from_file("phrases.txt")
# Генерация случайного сообщения
def generate_random_message():
role = random.choice(roles)
content = random.choice(phrases)
return {"role": role, "content": content}
# Создание сообщения
def create_message():
user_message = generate_random_message()
user_message["role"] = "user"
other_message = generate_random_message()
return [user_message, other_message]
# Функция для одного потока общения с API
async def chat_worker(worker_id):
async with aiohttp.ClientSession() as session:
while True:
messages = create_message()
user_message = next((msg["content"] for msg in messages if msg["role"] == "user"), "No user message found")
print(f"[Worker {worker_id}] Отправлен вопрос: {user_message}")
data = {"messages": messages}
try:
async with session.post(API_URL, json=data, headers=HEADERS, timeout=300) as response:
if response.status == 200:
result = await response.json()
assistant_response = result["choices"][0]["message"]["content"]
print(f"[Worker {worker_id}] Получен ответ: {assistant_response}\n{'-'*50}")
else:
print(f"[Worker {worker_id}] Ошибка: {response.status} {await response.text()}")
except asyncio.TimeoutError:
print(f"[Worker {worker_id}] Тайм-аут ожидания. Отправляю следующий запрос...")
except Exception as e:
print(f"[Worker {worker_id}] Ошибка: {e}")
await asyncio.sleep(3)
# Главная функция: запускает несколько потоков
async def main(num_workers):
tasks = [chat_worker(i) for i in range(num_workers)]
await asyncio.gather(*tasks)
# Запрос количества потоков у пользователя
if __name__ == "__main__":
while True:
try:
num_threads = int(input("Введите количество потоков (сколько нод подключено): ").strip())
if num_threads > 0:
break
else:
print("Число потоков должно быть больше 0!")
except ValueError:
print("Ошибка! Введите число.")
print(f"Запускаем {num_threads} потоков...")
asyncio.run(main(num_threads))
Сохраните файл кнопками CTRL+X затем Y и Enter
Создайте файл phrases.txt с фразами, которые будут использованы в чате:
Вы можете придумать и добавить свои вопросы или взять мои готовые тут - https://github.com/VaniaHilkovets/GAIA/blob/main/Phrases
nano phrases.txt
Вставьте фразы и сохраните файл кнопками CTRL+X затем Y и Enter Создайте файл roles.txt с ролями:
nano roles.txt
system user assistant
Добавление API-ключа в переменные окружения
export GAIA_API_KEY="вставьте_свой_ключ"
Сделайте переменную постоянной (чтобы она не исчезала после перезапуска сервера)
echo 'export GAIA_API_KEY="ваш_апи_ключ"' >> ~/.bashrc source ~/.bashrc
Запуск бота для работы с Gaia API
tmux new -s gaia
python3 gaia_bot.py
Выйти из сесии Tmux что бы бот работал в фоне - CTRL+B а затем D
Что бы позже вернуться в сессию введите команду:
tmux attach -t gaia
После этого бот будет автоматически отправлять запросы на ваш домен, балансируя нагрузку между подключенными нодами.
Бот работает, пока не закончатся API-запросы.
Если GaiaCredits заканчиваются, бот автоматически прекращает работу.
Если вы будете подключать много нод то бота нужно запускать только на одном сервере и указать количество потоков (нод) при запуске.
Оставляйте комментарии и подписывайтесь на мой Telegram-канал, где я отвечаю на любые ваши вопросы:
👉 https://t.me/SotochkaZela