adiom commited on
Commit
8d874ca
·
1 Parent(s): 1be7a42
Files changed (3) hide show
  1. app.py +47 -4
  2. data.json +106 -0
  3. requirements.txt +3 -2
app.py CHANGED
@@ -1,16 +1,59 @@
1
- import gradio as gr
2
- from transformers import AutoModelForCausalLM, AutoTokenizer
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.decode(outputs[0], skip_special_tokens=True)
13
  return response
14
 
15
- iface = gr.Interface(fn=chat, inputs="text", outputs="text", title="TinyLlama Chatbot")
 
 
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
- accelerate
5
- sentencepiece
 
 
1
  torch
2
  transformers
3
  gradio
4
+ faiss-cpu
5
+ sentence-transformers
6
+ deep-translator