Spaces:
Build error
Build error
app.py
CHANGED
|
@@ -8,8 +8,14 @@ from deep_translator import GoogleTranslator # Для перевода
|
|
| 8 |
# Загружаем TinyLlama
|
| 9 |
model_name = "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
|
| 10 |
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
| 11 |
-
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
|
| 14 |
# Загружаем Sentence Transformer
|
| 15 |
embedder = SentenceTransformer("all-MiniLM-L6-v2") # Легкий, работает на Free Tier
|
|
@@ -19,14 +25,14 @@ with open("data.json", "r", encoding="utf-8") as f:
|
|
| 19 |
knowledge_base = json.load(f)
|
| 20 |
|
| 21 |
# Превращаем вопросы в векторы
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
|
| 26 |
# Создаем FAISS индекс
|
| 27 |
-
dimension =
|
| 28 |
index = faiss.IndexFlatL2(dimension)
|
| 29 |
-
index.add(
|
| 30 |
|
| 31 |
# Функция поиска по смыслу с переводом
|
| 32 |
def search_knowledge_base(query, top_k=1):
|
|
@@ -37,12 +43,12 @@ def search_knowledge_base(query, top_k=1):
|
|
| 37 |
|
| 38 |
query_vector = embedder.encode([query_ru])
|
| 39 |
distances, indices = index.search(query_vector, top_k)
|
| 40 |
-
|
| 41 |
|
| 42 |
if query.isascii(): # Если изначально вопрос был на английском, переводим обратно
|
| 43 |
-
|
| 44 |
-
return
|
| 45 |
-
return
|
| 46 |
|
| 47 |
# Функция чата
|
| 48 |
def chat(message):
|
|
|
|
| 8 |
# Загружаем TinyLlama
|
| 9 |
model_name = "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
|
| 10 |
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
| 11 |
+
model_name = "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
|
| 12 |
+
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
| 13 |
+
# Убираем 4-битную квантизацию и используем float32
|
| 14 |
+
model = AutoModelForCausalLM.from_pretrained(
|
| 15 |
+
model_name,
|
| 16 |
+
torch_dtype=torch.float32, # Используем обычные веса без квантизации
|
| 17 |
+
device_map="auto"
|
| 18 |
+
)
|
| 19 |
|
| 20 |
# Загружаем Sentence Transformer
|
| 21 |
embedder = SentenceTransformer("all-MiniLM-L6-v2") # Легкий, работает на Free Tier
|
|
|
|
| 25 |
knowledge_base = json.load(f)
|
| 26 |
|
| 27 |
# Превращаем вопросы в векторы
|
| 28 |
+
instructions = [item["instruction"] for item in knowledge_base]
|
| 29 |
+
responses = [item["response"] for item in knowledge_base]
|
| 30 |
+
instruction_vectors = embedder.encode(instructions)
|
| 31 |
|
| 32 |
# Создаем FAISS индекс
|
| 33 |
+
dimension = instruction_vectors.shape[1]
|
| 34 |
index = faiss.IndexFlatL2(dimension)
|
| 35 |
+
index.add(instruction_vectors)
|
| 36 |
|
| 37 |
# Функция поиска по смыслу с переводом
|
| 38 |
def search_knowledge_base(query, top_k=1):
|
|
|
|
| 43 |
|
| 44 |
query_vector = embedder.encode([query_ru])
|
| 45 |
distances, indices = index.search(query_vector, top_k)
|
| 46 |
+
response_ru = responses[indices[0][0]] if indices[0][0] < len(responses) else "Ответ не найден."
|
| 47 |
|
| 48 |
if query.isascii(): # Если изначально вопрос был на английском, переводим обратно
|
| 49 |
+
response_en = GoogleTranslator(source='ru', target='en').translate(response_ru)
|
| 50 |
+
return response_en
|
| 51 |
+
return response_ru
|
| 52 |
|
| 53 |
# Функция чата
|
| 54 |
def chat(message):
|
data.json
CHANGED
|
@@ -1,110 +1,110 @@
|
|
| 1 |
[
|
| 2 |
{
|
| 3 |
-
"
|
| 4 |
-
"
|
| 5 |
},
|
| 6 |
{
|
| 7 |
-
"
|
| 8 |
-
"
|
| 9 |
},
|
| 10 |
{
|
| 11 |
-
"
|
| 12 |
-
"
|
| 13 |
},
|
| 14 |
{
|
| 15 |
-
"
|
| 16 |
-
"
|
| 17 |
},
|
| 18 |
{
|
| 19 |
-
"
|
| 20 |
-
"
|
| 21 |
},
|
| 22 |
{
|
| 23 |
-
"
|
| 24 |
-
"
|
| 25 |
},
|
| 26 |
{
|
| 27 |
-
"
|
| 28 |
-
"
|
| 29 |
},
|
| 30 |
{
|
| 31 |
-
"
|
| 32 |
-
"
|
| 33 |
},
|
| 34 |
{
|
| 35 |
-
"
|
| 36 |
-
"
|
| 37 |
},
|
| 38 |
{
|
| 39 |
-
"
|
| 40 |
-
"
|
| 41 |
},
|
| 42 |
{
|
| 43 |
-
"
|
| 44 |
-
"
|
| 45 |
},
|
| 46 |
{
|
| 47 |
-
"
|
| 48 |
-
"
|
| 49 |
},
|
| 50 |
{
|
| 51 |
-
"
|
| 52 |
-
"
|
| 53 |
},
|
| 54 |
{
|
| 55 |
-
"
|
| 56 |
-
"
|
| 57 |
},
|
| 58 |
{
|
| 59 |
-
"
|
| 60 |
-
"
|
| 61 |
},
|
| 62 |
{
|
| 63 |
-
"
|
| 64 |
-
"
|
| 65 |
},
|
| 66 |
{
|
| 67 |
-
"
|
| 68 |
-
"
|
| 69 |
},
|
| 70 |
{
|
| 71 |
-
"
|
| 72 |
-
"
|
| 73 |
},
|
| 74 |
{
|
| 75 |
-
"
|
| 76 |
-
"
|
| 77 |
},
|
| 78 |
{
|
| 79 |
-
"
|
| 80 |
-
"
|
| 81 |
},
|
| 82 |
{
|
| 83 |
-
"
|
| 84 |
-
"
|
| 85 |
},
|
| 86 |
{
|
| 87 |
-
"
|
| 88 |
-
"
|
| 89 |
},
|
| 90 |
{
|
| 91 |
-
"
|
| 92 |
-
"
|
| 93 |
},
|
| 94 |
{
|
| 95 |
-
"
|
| 96 |
-
"
|
| 97 |
},
|
| 98 |
{
|
| 99 |
-
"
|
| 100 |
-
"
|
| 101 |
},
|
| 102 |
{
|
| 103 |
-
"
|
| 104 |
-
"
|
| 105 |
},
|
| 106 |
{
|
| 107 |
-
"
|
| 108 |
-
"
|
| 109 |
}
|
| 110 |
]
|
|
|
|
| 1 |
[
|
| 2 |
{
|
| 3 |
+
"instruction": "Что разрабатывает Тимур?",
|
| 4 |
+
"response": "Тимур разрабатывает множество проектов, включая децентрализованный блокчейн-проект Amalgama с DAO, систему Proof of Contribution и токенами $AMALGAMA, $PDC, $AMT. Также он работает над созданием AI-моделей, чат-ботов, комиксов Aurora Comics, арт-проекта VZM и учебника по механико-логическим процессорам."
|
| 5 |
},
|
| 6 |
{
|
| 7 |
+
"instruction": "Кто такой Ricoch?",
|
| 8 |
+
"response": "ИИ-исследователь, психолог, специалист по NMDA"
|
| 9 |
},
|
| 10 |
{
|
| 11 |
+
"instruction": "Какие проекты у Тимура?",
|
| 12 |
+
"response": "Среди его проектов — Amalgama (блокчейн-платформа), Canfly (организация, разрабатывающая Amalgama), Ingria (автономный ИИ с гибкими экранами), Discord-бот для Ingria, Telegram-боты, модель социалистической деревни для монографии 'Социализм и ИИ - Симуляция общества', веб-сервисы с использованием DeepSpeech и Express.js, а также благотворительный фонд 'Летать вместе'."
|
| 13 |
},
|
| 14 |
{
|
| 15 |
+
"instruction": "Чем занимается Тимур?",
|
| 16 |
+
"response": "Тимур занимается разработкой программного обеспечения, изучением биоинформатики, созданием музыки в стиле dark hip-hop trap под псевдонимом DOGtheGOD, рисованием граффити, управлением кафе, исследованием технологий блокчейна, Web3.0 и смарт-контрактов, а также благотворительностью и созданием интерактивных арт-объектов."
|
| 17 |
},
|
| 18 |
{
|
| 19 |
+
"instruction": "Какие технологии использует Тимур?",
|
| 20 |
+
"response": "Тимур использует Node.js, Nuxt.js, NestJS, Docker, WordPress, смарт-контракты, NFT, Web3.0, PyMOL, TensorFlow, ESP32, FastAPI, PostgreSQL, Swift, Assembler, RISC-V, Verilog и другие современные технологии."
|
| 21 |
},
|
| 22 |
{
|
| 23 |
+
"instruction": "Какие увлечения у Тимура?",
|
| 24 |
+
"response": "Тимур увлекается музыкой, играми, уходом за растениями, саморазвитием, рисованием граффити, приготовлением пищи (пицца, вок, паста, хумус), китайской чайной церемонией и изучением биоинформатики."
|
| 25 |
},
|
| 26 |
{
|
| 27 |
+
"instruction": "Какие животные у Тимура?",
|
| 28 |
+
"response": "У Тимура четыре кота: Глафира, Масёк, Мелкий и Хабиб, а также две собаки породы алабай — Арго (старая) и Гюрза (молодая)."
|
| 29 |
},
|
| 30 |
{
|
| 31 |
+
"instruction": "Что планирует Тимур?",
|
| 32 |
+
"response": "Тимур планирует переезд в Санкт-Петербург, создание благотворительного фонда 'Летать вместе', разработку веб-сервисов с авторизацией через MetaMask и WalletConnect, изучение квантового программирования, создание механико-логического процессора (PLP) и написание книги."
|
| 33 |
},
|
| 34 |
{
|
| 35 |
+
"instruction": "Какие цели у Тимура?",
|
| 36 |
+
"response": "Тимур стремится объединить технологии, науку и искусство, изменить мир к лучшему, исследовать новые возможности взаимодействия и создавать уникальные проекты. Он также хочет удочерить ребенка и стать хорошим отцом."
|
| 37 |
},
|
| 38 |
{
|
| 39 |
+
"instruction": "Какие творческие проекты у Тимура?",
|
| 40 |
+
"response": "Тимур создает музыку под псевдонимом DOGtheGOD, пишет тексты и стихи под псевдонимом Тим Ад, рисует граффити, разрабатывает комиксы Aurora Comics и арт-проект VZM, а также создает милых существ под названием Куленёчки."
|
| 41 |
},
|
| 42 |
{
|
| 43 |
+
"instruction": "Какие научные интересы у Тимура?",
|
| 44 |
+
"response": "Тимур изучает биоинформатику, молекулярную биологию, органическую химию, квантовую физику и влияние ИИ на общество. Он также интересуется марксизмом, неомарксизмом и философскими концепциями, такими как субъективный идеализм и солипсизм."
|
| 45 |
},
|
| 46 |
{
|
| 47 |
+
"instruction": "Какие бизнес-проекты у Тимура?",
|
| 48 |
+
"response": "Тимур управляет небольшим кафе, продает парфюмерию через бренд 'Perfume by K&M', разрабатывает маркетплейс MART CAT для зоо-бизнеса и создает видеохостинг BRUTALBABY с поддержкой web3.0 и прямых эфиров."
|
| 49 |
},
|
| 50 |
{
|
| 51 |
+
"instruction": "Какие технологии блокчейна использует Тимур?",
|
| 52 |
+
"response": "Тимур работает с Polygon, интеграцией WalletConnect/MetaMask, смарт-контрактами, NFT и системой Proof of Contribution. Он также разрабатывает проект Worm для поиска узлов в множестве сетей для обеспечения отказоустойчивости блокчейна Amalgam."
|
| 53 |
},
|
| 54 |
{
|
| 55 |
+
"instruction": "Какие планы у Тимура на будущее?",
|
| 56 |
+
"response": "Тимур планирует углубиться в изучение квантового программирования, создать учебник по механико-логическим процессорам, разработать сервис для отслеживания цен криптовалют и продолжить работу над проектами, связанными с AI, блокчейном и благотворительностью."
|
| 57 |
},
|
| 58 |
{
|
| 59 |
+
"instruction": "Какие личные качества Тимура?",
|
| 60 |
+
"response": "Тимур — амбициозный, творческий и трудолюбивый человек. Он ценит семейные ценности, поддерживает социальные связи и стремится менять мир к лучшему через свои проекты."
|
| 61 |
},
|
| 62 |
{
|
| 63 |
+
"instruction": "Что такое проект Canfly?",
|
| 64 |
+
"response": "Canfly — это некоммерческая организация, основанная Адиомом Тимуром, которая занимается разработкой искусственного интеллекта и блокчейн-платформы Amalgam. Проект фокусируется на создании децентрализованных решений, благотворительности и интеграции передовых технологий."
|
| 65 |
},
|
| 66 |
{
|
| 67 |
+
"instruction": "Какие цели у проекта Canfly?",
|
| 68 |
+
"response": "Canfly стремится объединить технологии, науку и искусство для изменения мира к лучшему. Ключевые цели включают разработку блокчейн-платформы Amalgam, создание DAO, поддержку благотворительных инициатив (например, фонда 'Летать вместе'), а также продвижение открытых исследований в области ИИ, биоинформатики и квантовых технологий."
|
| 69 |
},
|
| 70 |
{
|
| 71 |
+
"instruction": "Какие технологии использует Canfly?",
|
| 72 |
+
"response": "Canfly использует технологии Web3.0, смарт-контракты, NFT, Polygon, интеграцию WalletConnect/MetaMask, а также разрабатывает AI-модели и голосовые интерфейсы. Для разработки применяются Node.js, Nuxt.js, NestJS, Docker, PostgreSQL и другие инструменты."
|
| 73 |
},
|
| 74 |
{
|
| 75 |
+
"instruction": "Что такое Canfly DAO?",
|
| 76 |
+
"response": "Canfly DAO — децентрализованная автономная организация, созданная в рамках проекта. Она управляет процессами на платформе Amalgam, распределяет токены ($PDC, $AMT, $CFT) и координирует вклад участников через систему Proof of Contribution (PoC)."
|
| 77 |
},
|
| 78 |
{
|
| 79 |
+
"instruction": "Какие токены связаны с Canfly?",
|
| 80 |
+
"response": "Canfly использует три токена: $AMALGAMA (основной токен платформы), $PDC (вознаграждение за вклад в контент) и $AMT (вознаграждение за предоставление аппаратных ресурсов). Также планируется $CFT для управления DAO."
|
| 81 |
},
|
| 82 |
{
|
| 83 |
+
"instruction": "Как связаны Canfly и Amalgam?",
|
| 84 |
+
"response": "Canfly — организация, которая разрабатывает блокчейн-платформу Amalgam. Amalgam представляет собой децентрализованную систему с DAO, уникальной системой Proof of Contribution и интеграцией Web3.0, предназначенную для создания контента через пользовательские группы (NFT) и распределения платежей через смарт-контракты."
|
| 85 |
},
|
| 86 |
{
|
| 87 |
+
"instruction": "Какие проекты входят в экосистему Canfly?",
|
| 88 |
+
"response": "В экосистему Canfly входят: Amalgam (блокчейн-платформа), Ingria (автономный ИИ с эмоциональными экранами), фонд 'Летать вместе' (благотворительность), вики-сайт по биоинформатике, учебник по механико-логическим процессорам (PLP) и другие исследовательские и образовательные инициативы."
|
| 89 |
},
|
| 90 |
{
|
| 91 |
+
"instruction": "Как Canfly поддерживает благотворительность?",
|
| 92 |
+
"response": "Canfly разрабатывает фонд 'Летать вместе', который поможет людям в сложных жизненных ситуациях, включая детей-сирот. Платформа будет open-source, чтобы любой мог развернуть её на бесплатном хостинге (например, Vercel), обеспечивая безопасность и доступность для активистов."
|
| 93 |
},
|
| 94 |
{
|
| 95 |
+
"instruction": "Какие планы у Canfly на будущее?",
|
| 96 |
+
"response": "Canfly планирует развивать Amalgam, интегрировать ИИ-модели (например, Ingria), запустить квантовые исследования, создать виртуальные выставочные пространства и расширить благотворительные программы. Также в планах — издание научных работ и учебников."
|
| 97 |
},
|
| 98 |
{
|
| 99 |
+
"instruction": "Кто участвует в разработке Canfly?",
|
| 100 |
+
"response": "Основатель и генеральный директор — Адиом Тимур. В разработке участвуют разработчики, исследователи и энтузиасты блокчейна, ИИ и биоинформатики. Canfly сотрудничает с сообществами в Twitter, GitHub и другими open-source проектами."
|
| 101 |
},
|
| 102 |
{
|
| 103 |
+
"instruction": "Как Canfly связан с искусственным интеллектом?",
|
| 104 |
+
"response": "Canfly разрабатывает AI-модели, такие как Ingria (автономный ИИ с эмоциональными экранами), голосовые боты для Telegram и Discord, а также системы анализа данных для блокчейна. Используются технологии DeepSpeech, TensorFlow и Hugging Face."
|
| 105 |
},
|
| 106 |
{
|
| 107 |
+
"instruction": "Как Canfly использует блокчейн?",
|
| 108 |
+
"response": "Canfly применяет блокчейн для создания децентрализованных приложений (Amalgam), управления DAO, хранения контента через NFT и обеспечения прозрачности в благотворительных проектах. Система Proof of Contribution стимулирует активность пользователей."
|
| 109 |
}
|
| 110 |
]
|
train.py
CHANGED
|
@@ -17,12 +17,12 @@ model = get_peft_model(model, config)
|
|
| 17 |
|
| 18 |
# Загружаем данные (пример из data.json)
|
| 19 |
train_data = [
|
| 20 |
-
{"
|
| 21 |
-
{"
|
| 22 |
]
|
| 23 |
|
| 24 |
# Преобразуем в формат для обучения
|
| 25 |
-
train_texts = [f"Q: {d['
|
| 26 |
train_encodings = tokenizer(train_texts, padding=True, truncation=True, return_tensors="pt")
|
| 27 |
|
| 28 |
# Настройки обучения
|
|
|
|
| 17 |
|
| 18 |
# Загружаем данные (пример из data.json)
|
| 19 |
train_data = [
|
| 20 |
+
{"instruction": "Что такое Canfly Inna?", "response": "Canfly Inna — это FastAPI сервер с RAG."},
|
| 21 |
+
{"instruction": "Как работает FAISS?", "response": "FAISS — это быстрый поиск ближайших соседей."}
|
| 22 |
]
|
| 23 |
|
| 24 |
# Преобразуем в формат для обучения
|
| 25 |
+
train_texts = [f"Q: {d['instruction']}\nA: {d['response']}" for d in train_data]
|
| 26 |
train_encodings = tokenizer(train_texts, padding=True, truncation=True, return_tensors="pt")
|
| 27 |
|
| 28 |
# Настройки обучения
|