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