Javier-Jimenez99 commited on
Commit
ab18fdf
·
1 Parent(s): 92cc575

Agregar funciones de herramientas: contador de letras, factores primos, lanzamiento de dados y voltereta de moneda

Browse files
__pycache__/tools.cpython-311.pyc ADDED
Binary file (3.29 kB). View file
 
__pycache__/websocket_manager.cpython-311.pyc ADDED
Binary file (1.92 kB). View file
 
__pycache__/websockets.cpython-311.pyc ADDED
Binary file (1.91 kB). View file
 
app.py CHANGED
@@ -1,62 +1,20 @@
1
  import gradio as gr
 
2
 
3
- # === TOOLS ===
4
- def letter_counter(word, letter):
5
- """
6
- Count the number of occurrences of a letter in a word or text.
7
-
8
- Args:
9
- word (str): The input text to search through
10
- letter (str): The letter to search for
11
-
12
- Returns:
13
- str: A message indicating how many times the letter appears
14
- """
15
- word = word.lower()
16
- letter = letter.lower()
17
- count = word.count(letter)
18
- return count
19
-
20
- def prime_factors(n):
21
- """
22
- Compute the prime factorization of a positive integer.
23
- Args:
24
- n (int): The integer to factorize. Must be greater than 1.
25
- Returns:
26
- List[int]: A list of prime factors in ascending order.
27
- Raises:
28
- ValueError: If n is not greater than 1.
29
- """
30
- n = int(n)
31
- if n <= 1:
32
- raise ValueError("Input must be an integer greater than 1.")
33
-
34
- factors = []
35
- while n % 2 == 0:
36
- factors.append(2)
37
- n //= 2
38
-
39
- divisor = 3
40
- while divisor * divisor <= n:
41
- while n % divisor == 0:
42
- factors.append(divisor)
43
- n //= divisor
44
- divisor += 2
45
-
46
- if n > 1:
47
- factors.append(n)
48
-
49
- return factors
50
 
51
  # === GRADIO INTERFACE ===
52
  demo = gr.TabbedInterface(
53
  [
54
  gr.Interface(letter_counter, [gr.Textbox(), gr.Textbox()], gr.Textbox(), api_name="letter_counter"),
55
  gr.Interface(prime_factors, gr.Number(), gr.JSON(), api_name="prime_factors"),
 
 
56
  ],
57
  [
58
  "Letter Counter",
59
- "Prime Factors"
 
 
60
  ]
61
  )
62
 
 
1
  import gradio as gr
2
+ from tools import letter_counter, prime_factors, roll_dice, coin_flip
3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
 
5
  # === GRADIO INTERFACE ===
6
  demo = gr.TabbedInterface(
7
  [
8
  gr.Interface(letter_counter, [gr.Textbox(), gr.Textbox()], gr.Textbox(), api_name="letter_counter"),
9
  gr.Interface(prime_factors, gr.Number(), gr.JSON(), api_name="prime_factors"),
10
+ gr.Interface(roll_dice, [gr.Number(label="Faces"), gr.Number(label="Rolls")], gr.JSON(), api_name="roll_dice"),
11
+ gr.Interface(coin_flip, gr.Number(label="Flips"), gr.JSON(), api_name="coin_flip")
12
  ],
13
  [
14
  "Letter Counter",
15
+ "Prime Factors",
16
+ "Roll Dice",
17
+ "Coin Flip"
18
  ]
19
  )
20
 
tools.py ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # === TOOLS ===
2
+ def letter_counter(word, letter):
3
+ """
4
+ Count the number of occurrences of a letter in a word or text.
5
+
6
+ Args:
7
+ word (str): The input text to search through
8
+ letter (str): The letter to search for
9
+
10
+ Returns:
11
+ str: A message indicating how many times the letter appears
12
+ """
13
+ word = word.lower()
14
+ letter = letter.lower()
15
+ count = word.count(letter)
16
+ return count
17
+
18
+ def prime_factors(n):
19
+ """
20
+ Compute the prime factorization of a positive integer.
21
+ Args:
22
+ n (int): The integer to factorize. Must be greater than 1.
23
+ Returns:
24
+ List[int]: A list of prime factors in ascending order.
25
+ Raises:
26
+ ValueError: If n is not greater than 1.
27
+ """
28
+ n = int(n)
29
+ if n <= 1:
30
+ raise ValueError("Input must be an integer greater than 1.")
31
+
32
+ factors = []
33
+ while n % 2 == 0:
34
+ factors.append(2)
35
+ n //= 2
36
+
37
+ divisor = 3
38
+ while divisor * divisor <= n:
39
+ while n % divisor == 0:
40
+ factors.append(divisor)
41
+ n //= divisor
42
+ divisor += 2
43
+
44
+ if n > 1:
45
+ factors.append(n)
46
+
47
+ return factors
48
+
49
+ def roll_dice(faces, rolls):
50
+ """
51
+ Simulate rolling dice.
52
+
53
+ Args:
54
+ faces (int): Number of faces on the die.
55
+ rolls (int): Number of times to roll the die.
56
+
57
+ Returns:
58
+ List[int]: A list of results from each roll.
59
+ """
60
+ import random
61
+ return [random.randint(1, faces) for _ in range(rolls)]
62
+
63
+ def coin_flip(flips):
64
+ """
65
+ Simulate flipping a coin multiple times.
66
+
67
+ Args:
68
+ flips (int): Number of times to flip the coin.
69
+
70
+ Returns:
71
+ List[str]: A list of results from each flip ("Heads" or "Tails").
72
+ """
73
+ import random
74
+ return ["Heads" if random.randint(0, 1) == 0 else "Tails" for _ in range(flips)]