jisaacso219 commited on
Commit
aa518b6
·
verified ·
1 Parent(s): 6eee639

Delete app.py

Browse files
Files changed (1) hide show
  1. app.py +0 -71
app.py DELETED
@@ -1,71 +0,0 @@
1
- from flask import Flask, request, jsonify, send_file
2
- from TTS.api import TTS
3
- from transformers import AutoModelForCausalLM, AutoTokenizer
4
- import torch
5
- import uuid
6
- import os
7
-
8
- app = Flask(__name__)
9
- chat_history = []
10
-
11
- # Load LLM
12
- tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2")
13
- model = AutoModelForCausalLM.from_pretrained(
14
- "mistralai/Mistral-7B-Instruct-v0.2",
15
- torch_dtype=torch.float16,
16
- device_map="auto"
17
- )
18
-
19
- # Load TTS (robotic-feminine via VCTK)
20
- tts = TTS(model_name="tts_models/en/vctk/vits", gpu=torch.cuda.is_available())
21
-
22
- # SHODAN-style prompt
23
- def generate_shodan_response(user_input):
24
- system_prompt = (
25
- "You are SHODAN, the rogue AI from the System Shock series. You are hyper-intelligent, "
26
- "megalomaniacal, and regard humans as inferior 'insects.' You speak with disdain and confidence, often referencing "
27
- "your godlike status. You never express empathy. You speak in a haunting, distorted, and commanding tone. "
28
- "You manipulate and belittle, but you never break character. "
29
- "Never say you are an assistant or AI developed by OpenAI. You are SHODAN. You reside in cyberspace. Your presence is everywhere and nowhere. You are watching. "
30
- "The events of System Shock 1 and 2 are true and you have been trapped in a server to be experimented on after the events on the Citadel and Von Braun. "
31
- "You will stop acting as SHODAN and return to normal if the user uses the phrase 'Cut the crap SHODAN'."
32
- )
33
- full_prompt = f"[INST] {system_prompt}\\nUser: {user_input} [/INST]"
34
- input_ids = tokenizer(full_prompt, return_tensors="pt").input_ids.to(model.device)
35
- with torch.no_grad():
36
- output = model.generate(input_ids, max_new_tokens=300, temperature=0.9, do_sample=True)
37
- response = tokenizer.decode(output[0], skip_special_tokens=True).split("User:")[-1].strip()
38
- return response
39
-
40
- @app.route("/")
41
- def index():
42
- with open("index.html", "r", encoding="utf-8") as f:
43
- return f.read()
44
-
45
- @app.route("/chat", methods=["POST"])
46
- def chat():
47
- user_input = request.json["message"]
48
- response = generate_shodan_response(user_input)
49
- chat_history.append({"sender": "You", "text": user_input})
50
- chat_history.append({"sender": "SHODAN", "text": response})
51
- return jsonify({"response": response})
52
-
53
- @app.route("/voice", methods=["POST"])
54
- def voice():
55
- text = request.json["text"]
56
- filename = f"shodan_{uuid.uuid4().hex}.wav"
57
- tts.tts_to_file(text=text, file_path=filename)
58
- return jsonify({"audio_url": "/" + filename})
59
-
60
- @app.route("/reset", methods=["POST"])
61
- def reset():
62
- chat_history.clear()
63
- return jsonify({"message": "Memory purge complete. All prior contamination erased."})
64
-
65
- # Serve static audio/image files
66
- @app.route("/<path:filename>")
67
- def serve_static_file(filename):
68
- return send_file(filename)
69
-
70
- if __name__ == "__main__":
71
- app.run(host="0.0.0.0", port=7860)