Moibe commited on
Commit
ae1f1c7
·
1 Parent(s): 1290574

Last Changes

Browse files
Files changed (9) hide show
  1. .gitattributes +35 -35
  2. LICENSE +21 -21
  3. README.md +13 -13
  4. flux_capacitor.py +59 -59
  5. nodes.py +1 -1
  6. requirements.txt +2 -2
  7. sulkuGateway.py +51 -50
  8. sulkuPypi.py +45 -45
  9. theApp.py +31 -31
.gitattributes CHANGED
@@ -1,35 +1,35 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 Moibe
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
 
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Moibe
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
README.md CHANGED
@@ -1,13 +1,13 @@
1
- ---
2
- title: Basico-Charge
3
- emoji: 🏃⚡
4
- colorFrom: yellow
5
- colorTo: gray
6
- sdk: gradio
7
- sdk_version: 4.17.0
8
- app_file: app.py
9
- pinned: false
10
- license: mit
11
- ---
12
-
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
+ ---
2
+ title: Basico-Charge
3
+ emoji: 🏃⚡
4
+ colorFrom: yellow
5
+ colorTo: gray
6
+ sdk: gradio
7
+ sdk_version: 4.17.0
8
+ app_file: app.py
9
+ pinned: false
10
+ license: mit
11
+ ---
12
+
13
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
flux_capacitor.py CHANGED
@@ -1,60 +1,60 @@
1
- import theApp
2
- import nodes
3
- import sulkuGateway
4
- import sulkuPypi
5
- import time
6
-
7
- #Flux capacitor une la Autenticación y la App.
8
- def do(access, content):
9
-
10
- print("Esto es access: ", access)
11
- print("Esto es content: ", content)
12
- time.sleep(10)
13
-
14
- print("Entré a flux_capacitor.do...")
15
-
16
- #AUTENTICACIÓN#
17
- #Obten cantidad de tokens dispobibles vía Sulku para ese usuario.
18
- #resultado = sulkuGateway.getTokens(access)
19
- resultado = sulkuPypi.getTokens(access)
20
-
21
- #Un try para convertirlo en entero porque quizá bajo alguna circunstancia no sea un número lo que regresa y marcará error al aplicarle int().
22
- try:
23
- resultado = int(resultado)
24
- except ValueError:
25
- # Manejar el error de conversión a entero
26
- print("Error 401: return value is not int.")
27
-
28
- except Exception as e:
29
- # Manejar otros errores genéricos
30
- print("Error 402: Unexpected error convertirng the result:", e)
31
-
32
- #Si el resultado es un entero, es token.
33
- if isinstance(resultado, int):
34
- #El númmero si es un entero.
35
- tokens = resultado
36
- continuar = True
37
- print("Access granted.")
38
- print("Your amount of available tokens is: ", tokens)
39
- else:
40
- print("Message:", resultado)
41
- continuar = False
42
-
43
- #ACCIÓN#
44
- print("Performing action, processing...")
45
- if continuar is True and theApp.saldoParaAccion(tokens):
46
- resultado = theApp.getResult(content)
47
- print("Process completed.")
48
- else:
49
- print(f"Message: Not enough tokens to perform {nodes.work} action.")
50
- resultado = 0
51
-
52
- #CHARGE TOKENS
53
- #Si se generó un resultado de AI entonces si hay que debitar el token correspondiente basado en la regla propia de la app.
54
- if resultado != 0:
55
- #sulkuGateway.debitTokens(access, nodes.work)
56
- sulkuPypi.debitTokens(access, nodes.work)
57
- else:
58
- "No tokens will be charged because no outcome was produced."
59
-
60
  return tokens, resultado
 
1
+ import theApp
2
+ import nodes
3
+ import sulkuGateway
4
+ import sulkuPypi
5
+ import time
6
+
7
+ #Flux capacitor une la Autenticación y la App.
8
+ def do(access, content):
9
+
10
+ print("Esto es access: ", access)
11
+ print("Esto es content: ", content)
12
+ time.sleep(10)
13
+
14
+ print("Entré a flux_capacitor.do...")
15
+
16
+ #AUTENTICACIÓN#
17
+ #Obten cantidad de tokens dispobibles vía Sulku para ese usuario.
18
+ #resultado = sulkuGateway.getTokens(access)
19
+ resultado = sulkuPypi.getTokens(access)
20
+
21
+ #Un try para convertirlo en entero porque quizá bajo alguna circunstancia no sea un número lo que regresa y marcará error al aplicarle int().
22
+ try:
23
+ resultado = int(resultado)
24
+ except ValueError:
25
+ # Manejar el error de conversión a entero
26
+ print("Error 401: return value is not int.")
27
+
28
+ except Exception as e:
29
+ # Manejar otros errores genéricos
30
+ print("Error 402: Unexpected error convertirng the result:", e)
31
+
32
+ #Si el resultado es un entero, es token.
33
+ if isinstance(resultado, int):
34
+ #El númmero si es un entero.
35
+ tokens = resultado
36
+ continuar = True
37
+ print("Access granted.")
38
+ print("Your amount of available tokens is: ", tokens)
39
+ else:
40
+ print("Message:", resultado)
41
+ continuar = False
42
+
43
+ #ACCIÓN#
44
+ print("Performing action, processing...")
45
+ if continuar is True and theApp.saldoParaAccion(tokens):
46
+ resultado = theApp.getResult(content)
47
+ print("Process completed.")
48
+ else:
49
+ print(f"Message: Not enough tokens to perform {nodes.work} action.")
50
+ resultado = 0
51
+
52
+ #CHARGE TOKENS
53
+ #Si se generó un resultado de AI entonces si hay que debitar el token correspondiente basado en la regla propia de la app.
54
+ if resultado != 0:
55
+ #sulkuGateway.debitTokens(access, nodes.work)
56
+ sulkuPypi.debitTokens(access, nodes.work)
57
+ else:
58
+ "No tokens will be charged because no outcome was produced."
59
+
60
  return tokens, resultado
nodes.py CHANGED
@@ -1,2 +1,2 @@
1
- validator = "Moibe/sulku"
2
  work = "picswap"
 
1
+ validator = "Moibe/sulku"
2
  work = "picswap"
requirements.txt CHANGED
@@ -1,3 +1,3 @@
1
- requests
2
- gradio_client
3
  gradio
 
1
+ requests
2
+ gradio_client
3
  gradio
sulkuGateway.py CHANGED
@@ -1,51 +1,52 @@
1
- import os
2
- import time
3
- import nodes
4
- import requests
5
- import gradio_client
6
-
7
- def getTokens(sulkukey):
8
-
9
- print("Entre a SulkuGateway...")
10
- time.sleep(3)
11
-
12
- #var_secreta = os.environ.get("huggingface_key")
13
- var_secreta = os.environ.get("hf_write")
14
- #print("Esto es var_secreta: ", var_secreta)
15
-
16
- print("A punto de hacer llamado a cliente de API via Sulku...")
17
-
18
- try:
19
- #client = gradio_client.Client("Moibe/sulku", hf_token=var_secreta, verbose=True)
20
- client = gradio_client.Client("Moibe/sulku", verbose=True)
21
- print("ESTE ES EL CLIENTE:", client)
22
- time.sleep(7)
23
- print("Eso fue el cliente...")
24
- resultado = client.predict(sulkukey, api_name="/getTokens")
25
-
26
- return resultado
27
-
28
- # except gradio_client.exceptions.APIError as e:
29
- # print(f"Error 404 calling the API: {e}")
30
- # return None
31
- except requests.exceptions.RequestException as e:
32
- print(f"Error 405: Network error, {e}")
33
- return None
34
-
35
-
36
- def debitTokens(sulkukey, work):
37
-
38
- #client = gradio_client.Client(nodes.validator, nodes.hf_token, verbose=False)
39
- client = gradio_client.Client("Moibe/sulku", verbose=True)
40
-
41
-
42
- tokens = client.predict(
43
- sulkukey,
44
- work,
45
- api_name="/debitTokens"
46
- )
47
-
48
- print(f"Available tokens now: {tokens}.")
49
- time.sleep(1)
50
-
 
51
  return tokens
 
1
+ import os
2
+ import time
3
+ import nodes
4
+ import requests
5
+ import gradio_client
6
+
7
+ def getTokens(sulkukey):
8
+
9
+ print("Entre a SulkuGateway...")
10
+ time.sleep(3)
11
+
12
+ #var_secreta = os.environ.get("huggingface_key")
13
+ var_secreta = os.environ.get("hf_write")
14
+ #print("Esto es var_secreta: ", var_secreta)
15
+ #FUTURE: Recuerdo que no sirvió usar la clave secreta como token para otro repositorio, intenta pasarla como str?
16
+
17
+ print("A punto de hacer llamado a cliente de API via Sulku...")
18
+
19
+ try:
20
+ #client = gradio_client.Client("Moibe/sulku", hf_token=var_secreta, verbose=True)
21
+ client = gradio_client.Client("Moibe/sulku", verbose=True)
22
+ print("ESTE ES EL CLIENTE:", client)
23
+ time.sleep(7)
24
+ print("Eso fue el cliente...")
25
+ resultado = client.predict(sulkukey, api_name="/getTokens")
26
+
27
+ return resultado
28
+
29
+ # except gradio_client.exceptions.APIError as e:
30
+ # print(f"Error 404 calling the API: {e}")
31
+ # return None
32
+ except requests.exceptions.RequestException as e:
33
+ print(f"Error 405: Network error, {e}")
34
+ return None
35
+
36
+
37
+ def debitTokens(sulkukey, work):
38
+
39
+ #client = gradio_client.Client(nodes.validator, nodes.hf_token, verbose=False)
40
+ client = gradio_client.Client("Moibe/sulku", verbose=True)
41
+
42
+
43
+ tokens = client.predict(
44
+ sulkukey,
45
+ work,
46
+ api_name="/debitTokens"
47
+ )
48
+
49
+ print(f"Available tokens now: {tokens}.")
50
+ time.sleep(1)
51
+
52
  return tokens
sulkuPypi.py CHANGED
@@ -1,45 +1,45 @@
1
- import requests
2
- import time
3
-
4
- base_url = "https://moibe-sulku-docker.hf.space/"
5
- userfile = "gAAAAABmEZA4SLBC2YczouOrjIEi9WNCNGOIvyUcqBUnzxNsftXTdy54KaX9x8mAjFkABSI6FJrdZDQKk_5lpJOgJoMChxlniw=="
6
- work = "picswap"
7
-
8
-
9
- def getTokens(userfile):
10
-
11
- api_url = base_url + "getTokens/" + userfile
12
-
13
- response = requests.get(api_url)
14
-
15
- if response.status_code == 200:
16
- print("Conexión a Sulku successful...")
17
- tokens = response.json()
18
- print("Tokens:", tokens)
19
- else:
20
- print("Error al obtener el elemento todo:", response.status_code)
21
-
22
- return tokens
23
-
24
- def debitTokens(userfile, work):
25
-
26
- api_url = base_url + "debitTokens" + "/" + userfile + "/" + work
27
-
28
- print("Apiurl es: ", api_url)
29
- time.sleep(8)
30
-
31
- response = requests.get(api_url)
32
-
33
- if response.status_code == 200:
34
- print("Conexión a Sulku successful...")
35
- tokens = response.json()
36
- print("Tokens:", tokens)
37
- else:
38
- print("Error al obtener el elemento todo:", response.status_code)
39
-
40
- return tokens
41
-
42
- if __name__ == "__main__":
43
- getTokens(userfile)
44
- debitTokens(userfile, work)
45
- pass
 
1
+ import requests
2
+ import time
3
+
4
+ base_url = "https://moibe-sulku-docker.hf.space/"
5
+ userfile = "gAAAAABmEZA4SLBC2YczouOrjIEi9WNCNGOIvyUcqBUnzxNsftXTdy54KaX9x8mAjFkABSI6FJrdZDQKk_5lpJOgJoMChxlniw=="
6
+ work = "picswap"
7
+
8
+
9
+ def getTokens(userfile):
10
+
11
+ api_url = base_url + "getTokens/" + userfile
12
+
13
+ response = requests.get(api_url)
14
+
15
+ if response.status_code == 200:
16
+ print("Conexión a Sulku successful...")
17
+ tokens = response.json()
18
+ print("Tokens:", tokens)
19
+ else:
20
+ print("Error al obtener el elemento todo:", response.status_code)
21
+
22
+ return tokens
23
+
24
+ def debitTokens(userfile, work):
25
+
26
+ api_url = base_url + "debitTokens" + "/" + userfile + "/" + work
27
+
28
+ print("Apiurl es: ", api_url)
29
+ time.sleep(8)
30
+
31
+ response = requests.get(api_url)
32
+
33
+ if response.status_code == 200:
34
+ print("Conexión a Sulku successful...")
35
+ tokens = response.json()
36
+ print("Tokens:", tokens)
37
+ else:
38
+ print("Error al obtener el elemento todo:", response.status_code)
39
+
40
+ return tokens
41
+
42
+ if __name__ == "__main__":
43
+ getTokens(userfile)
44
+ debitTokens(userfile, work)
45
+ pass
theApp.py CHANGED
@@ -1,32 +1,32 @@
1
- import time
2
- import nodes
3
- import gradio_client
4
-
5
- def saldoParaAccion(tokens):
6
- #Donde 1 es el cobro por acción, es decir, tiene capacidad por lo menos de realizar una acción.
7
- if tokens >= 1:
8
- return True
9
-
10
- else:
11
- print("Not enough tokens to perform the action, add more.")
12
- return False
13
-
14
-
15
- def getResult(content):
16
-
17
- print("Processing content: ", content)
18
- time.sleep(1)
19
-
20
- if nodes.work == "picswap":
21
- print("Work specs ok, action: ", nodes.work)
22
- time.sleep(1)
23
-
24
- #Aquí es donde ya no será un llamado de api si no la app itself. Listo OK!.
25
- result = f"y el resultado es: Tervetuluo {content} !"
26
- #Revisa si la app en cuestión podría regresar algún resultado extraño además del esperado. Esto se revisa en la otra App.
27
- return result
28
-
29
- else:
30
- print("Work specs aren't correct. Please fix or contact app.")
31
- #Regresa cero si el trabajo no se realizó por haber especificado incorrectamente el Work.
32
  return 0
 
1
+ import time
2
+ import nodes
3
+ import gradio_client
4
+
5
+ def saldoParaAccion(tokens):
6
+ #Donde 1 es el cobro por acción, es decir, tiene capacidad por lo menos de realizar una acción.
7
+ if tokens >= 1:
8
+ return True
9
+
10
+ else:
11
+ print("Not enough tokens to perform the action, add more.")
12
+ return False
13
+
14
+
15
+ def getResult(content):
16
+
17
+ print("Processing content: ", content)
18
+ time.sleep(1)
19
+
20
+ if nodes.work == "picswap":
21
+ print("Work specs ok, action: ", nodes.work)
22
+ time.sleep(1)
23
+
24
+ #Aquí es donde ya no será un llamado de api si no la app itself. Listo OK!.
25
+ result = f"y el resultado es: Tervetuluo {content} !"
26
+ #Revisa si la app en cuestión podría regresar algún resultado extraño además del esperado. Esto se revisa en la otra App.
27
+ return result
28
+
29
+ else:
30
+ print("Work specs aren't correct. Please fix or contact app.")
31
+ #Regresa cero si el trabajo no se realizó por haber especificado incorrectamente el Work.
32
  return 0