Yhhxhfh commited on
Commit
5f0c401
1 Parent(s): 91de1a8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -22
app.py CHANGED
@@ -23,40 +23,38 @@ from dotenv import load_dotenv
23
  from datetime import datetime
24
  from sklearn.feature_extraction.text import CountVectorizer
25
  from sklearn.model_selection import train_test_split
 
26
  from faker import Faker
27
  from random_word import RandomWords
28
  from textgenrnn import textgenrnn
 
 
 
 
 
29
 
30
  load_dotenv()
31
 
32
  app = FastAPI()
33
 
34
  lemmatizer = WordNetLemmatizer()
35
- faker = Faker()
36
- r = redis.Redis(host=os.getenv("REDIS_HOST"), port=int(os.getenv("REDIS_PORT")), password=os.getenv("REDIS_PASSWORD"))
37
- random_words = RandomWords()
38
- textgen = textgenrnn()
39
 
40
  def create_intents_json():
41
  intents = {
42
  "intents": [
43
  {
44
  "tag": "greeting",
45
- "patterns": [faker.sentence() for _ in range(5)],
46
  "responses": ["¡Hola!", "¿Cómo puedo ayudarte?"],
47
- "date": datetime.now().strftime("%Y-%m-%d")
48
  },
49
  {
50
  "tag": "goodbye",
51
- "patterns": [faker.sentence() for _ in range(5)],
52
  "responses": ["¡Hasta luego!", "Cuídate!"],
53
- "date": datetime.now().strftime("%Y-%m-%d")
54
- },
55
- {
56
- "tag": "random_word",
57
- "patterns": [random_words.get_random_word() for _ in range(5)],
58
- "responses": [faker.sentence() for _ in range(5)],
59
- "date": datetime.now().strftime("%Y-%m-%d")
60
  }
61
  ]
62
  }
@@ -102,13 +100,16 @@ async def train_and_save_model():
102
  if intent['tag'] not in classes:
103
  classes.append(intent['tag'])
104
 
105
- for intent in intents['intents']:
106
- for pattern in intent['patterns']:
107
- synonyms = generate_synonyms(pattern)
108
- for synonym in synonyms:
109
- processed_words = nltk.word_tokenize(synonym)
110
- documents.append((processed_words, intent['tag']))
111
- words.extend(processed_words)
 
 
 
112
 
113
  words = sorted(set(words))
114
  classes = sorted(set(classes))
@@ -312,7 +313,7 @@ async def root():
312
  return html_code
313
 
314
  if __name__ == "__main__":
315
- print("Iniciando la aplicación...")
316
  create_intents_json()
317
  asyncio.run(train_and_save_model())
318
  uvicorn.run(app, host="0.0.0.0", port=7860)
 
23
  from datetime import datetime
24
  from sklearn.feature_extraction.text import CountVectorizer
25
  from sklearn.model_selection import train_test_split
26
+ from transformers import pipeline
27
  from faker import Faker
28
  from random_word import RandomWords
29
  from textgenrnn import textgenrnn
30
+ import logging
31
+
32
+ # Configuración de logging
33
+ logging.basicConfig(level=logging.INFO)
34
+ logger = logging.getLogger(__name__)
35
 
36
  load_dotenv()
37
 
38
  app = FastAPI()
39
 
40
  lemmatizer = WordNetLemmatizer()
41
+ redis_password = os.getenv("REDIS_PASSWORD")
42
+ r = redis.Redis(host=os.getenv("REDIS_HOST"), port=int(os.getenv("REDIS_PORT")), password=redis_password)
 
 
43
 
44
  def create_intents_json():
45
  intents = {
46
  "intents": [
47
  {
48
  "tag": "greeting",
49
+ "patterns": ["Hola", "¿Cómo estás?", "Buenos días"],
50
  "responses": ["¡Hola!", "¿Cómo puedo ayudarte?"],
51
+ "date": "2021-01-01"
52
  },
53
  {
54
  "tag": "goodbye",
55
+ "patterns": ["Adiós", "Hasta luego", "Nos vemos"],
56
  "responses": ["¡Hasta luego!", "Cuídate!"],
57
+ "date": "2021-01-01"
 
 
 
 
 
 
58
  }
59
  ]
60
  }
 
100
  if intent['tag'] not in classes:
101
  classes.append(intent['tag'])
102
 
103
+ # Generar contenido adicional para intents.json
104
+ fake = Faker()
105
+ random_words = RandomWords()
106
+ for _ in range(10): # Generar 10 nuevas entradas
107
+ random_pattern = f"{fake.sentence()}"
108
+ random_tag = random_words.get_random_word()
109
+ documents.append((nltk.word_tokenize(random_pattern), random_tag))
110
+ words.extend(nltk.word_tokenize(random_pattern))
111
+ if random_tag not in classes:
112
+ classes.append(random_tag)
113
 
114
  words = sorted(set(words))
115
  classes = sorted(set(classes))
 
313
  return html_code
314
 
315
  if __name__ == "__main__":
316
+ logger.info(f"Application Startup at {datetime.now()}")
317
  create_intents_json()
318
  asyncio.run(train_and_save_model())
319
  uvicorn.run(app, host="0.0.0.0", port=7860)