saber: catalogo de awesome lists en el RAG
- awesome.py parsea awesome lists (markdown y RST): limpia enlaces y badges, agrupa cada categoria en un fragmento, y etiqueta fuente + licencia. - indexa.py las incluye; en el indice PUBLICO solo entran las redistribuibles: awesome (sindresorhus, CC0) y awesome-selfhosted (CC BY-SA 3.0). awesome-hacking (sin licencia) se indexa solo en el indice personal si se clona en CODERS. - saber-publico.jsonl pasa a 699 entradas (glosario + conocimiento + catalogo). - ATRIBUCION.md acredita fuentes y licencias; docs/rag.md lo documenta.
This commit is contained in:
parent
9fa0a40edf
commit
43335d329f
5 changed files with 500 additions and 6 deletions
|
|
@ -149,6 +149,22 @@ def trocea(ruta):
|
|||
yield buffer.strip()
|
||||
|
||||
|
||||
def _catalogo(solo_publico=False):
|
||||
"""Las awesome lists clonadas en CODERS, si el modulo y las listas estan."""
|
||||
try:
|
||||
try:
|
||||
from saber import awesome
|
||||
except ImportError:
|
||||
import awesome
|
||||
except ImportError:
|
||||
return []
|
||||
fragmentos = []
|
||||
for e in awesome.entradas(solo_publico=solo_publico):
|
||||
e.pop("publico", None) # marca interna de filtrado, no va al indice
|
||||
fragmentos.append(e)
|
||||
return fragmentos
|
||||
|
||||
|
||||
def _conocimiento():
|
||||
"""El pack de metodologia y manuales que viene con el repo (conocimiento/)."""
|
||||
fragmentos = []
|
||||
|
|
@ -201,8 +217,10 @@ def construye_publico(solo_cuenta=False):
|
|||
import glosario
|
||||
glo = list(glosario.entradas())
|
||||
con = _conocimiento()
|
||||
todo = glo + con
|
||||
print(f" glosario {len(glo)} + conocimiento {len(con)} = {len(todo)} entradas publicas")
|
||||
cat = _catalogo(solo_publico=True) # solo las awesome de licencia redistribuible
|
||||
todo = glo + con + cat
|
||||
print(f" glosario {len(glo)} + conocimiento {len(con)} + catalogo {len(cat)} "
|
||||
f"= {len(todo)} entradas publicas")
|
||||
if solo_cuenta:
|
||||
return 0
|
||||
_guarda_indice(todo, INDICE_PUBLICO)
|
||||
|
|
@ -262,9 +280,16 @@ def construye(solo_cuenta=False, solo_cofre=False):
|
|||
conocimiento = _conocimiento()
|
||||
print(f" CONOCIMIENTO {len(conocimiento):5d} fragmentos (pack del repo)")
|
||||
|
||||
todo = fichas + fragmentos + sistema + conocimiento
|
||||
# Las awesome lists clonadas en CODERS (catalogo de que-existe-para-X). En el
|
||||
# indice personal entran todas; el filtro por licencia solo aplica al publico.
|
||||
catalogo = _catalogo(solo_publico=False)
|
||||
if catalogo:
|
||||
print(f" CATALOGO {len(catalogo):5d} fragmentos (awesome lists)")
|
||||
|
||||
todo = fichas + fragmentos + sistema + conocimiento + catalogo
|
||||
print(f"\n total: {len(fichas)} fichas + {len(fragmentos)} apuntes + "
|
||||
f"{len(sistema)} sistema + {len(conocimiento)} conocimiento = {len(todo)} entradas")
|
||||
f"{len(sistema)} sistema + {len(conocimiento)} conocimiento + "
|
||||
f"{len(catalogo)} catalogo = {len(todo)} entradas")
|
||||
if solo_cuenta:
|
||||
return 0
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue