DocsScraper est un package conçu pour créer des « packs de connaissances » à partir de sites de documentation en ligne pour le langage Julia.
Il récupère et analyse les URL et, avec l'aide de PromptingTools.jl, crée un index de morceaux et de leurs intégrations qui peuvent être utilisés dans les applications RAG. Il s'intègre à AIHelpMe.jl et PromptingTools.jl pour offrir une récupération de requêtes très efficace et pertinente, garantissant que les réponses générées par le système sont spécifiques au contenu de la base de données créée.
Pour installer DocsScraper, utilisez le gestionnaire de packages Julia et le nom du package (il n'est pas encore enregistré) :
using Pkg
Pkg . add (url = " https://github.com/JuliaGenAI/DocsScraper.jl " )
Prérequis :
using DocsScraper
crawlable_urls = [ " https://juliagenai.github.io/DocsScraper.jl/dev " ]
index_path = make_knowledge_packs (crawlable_urls;
index_name = " docsscraper " , embedding_dimension = 1024 , embedding_bool = true , target_path = " knowledge_packs " )
[ Info : robots . txt unavailable for https : // juliagenai . github . io : / DocsScraper . jl / dev / home /
[ Info : Scraping link : https : // juliagenai . github . io : / DocsScraper . jl / dev / home /
[ Info : robots . txt unavailable for https : // juliagenai . github . io : / DocsScraper . jl / dev
[ Info : Scraping link : https : // juliagenai . github . io : / DocsScraper . jl / dev
. . .
[ Info : Processing https : // juliagenai . github . io : / DocsScraper . jl / dev ...
[ Info : Parsing URL : https : // juliagenai . github . io : / DocsScraper . jl / dev
[ Info : Scraping done : 44 chunks
[ Info : Removed 0 short chunks
[ Info : Removed 1 duplicate chunks
[ Info : Created embeddings for docsscraper. Cost : $ 0. 001
a docsscraper__v20240823__textembedding3large - 1024 - Bool__v1. 0. hdf5
[ Info : ARTIFACT : docsscraper__v20240823__textembedding3large - 1024 - Bool__v1. 0. tar . gz
┌ Info : sha256 :
└ sha = " 977c2b9d9fe30bebea3b6db124b733d29b7762a8f82c9bd642751f37ad27ee2e "
┌ Info : git - tree - sha1 :
└ git_tree_sha = " eca409c0a32ed506fbd8125887b96987e9fb91d2 "
[ Info : Saving source URLS in Julia knowledge_packs docsscraper docsscraper_URL_mapping . csv
" Julia \ knowledge_packs \ docsscraper \ Index \ docsscraper__v20240823__textembedding3large-1024-Bool__v1.0.hdf5 "
make_knowledge_packs
est le point d'entrée du package. Cette fonction récupère les URL à analyser et renvoie l'index. Cet index peut être transmis à AIHelpMe.jl pour répondre aux requêtes sur les packs de connaissances construits.
Paramètres make_knowledge_packs
par défaut :
embedding_bool = true
.embedding_dimension = custom_dimension
.max_chunk_size = custom_max_size
et min_chunk_size = custom_min_size
. Remarque : Pour une utilisation quotidienne, la taille d'intégration = 1 024 et le type d'intégration = Bool sont suffisants. Ceci est compatible avec les pipelines :bronze
et :silver
d'AIHelpMe ( update_pipeline(:bronze)
). Pour de meilleurs résultats, utilisez la taille d’intégration = 3072 et le type d’intégration = Float32. Cela nécessite l'utilisation du pipeline :gold
(voir plus ?RAG_CONFIGURATIONS
)
using AIHelpMe
using AIHelpMe : pprint, load_index!
# set it as the "default" index, then it will be automatically used for every question
load_index! (index_path)
aihelp ( " what is DocsScraper.jl? " ) |> pprint
[ Info : Updated RAG pipeline to ` :bronze ` (Configuration key : " textembedding3large-1024-Bool " ) .
[ Info : Loaded index from packs : julia into MAIN_INDEX
[ Info : Loading index from Julia DocsScraper . jl docsscraper Index docsscraper__v20240823__textembedding3large - 1024 - Bool__v1. 0. hdf5
[ Info : Loaded index a file Julia DocsScraper . jl docsscraper Index docsscraper__v20240823__textembedding3large - 1024 - Bool__v1. 0. hdf5 into MAIN_INDEX
[ Info : Done with RAG. Total cost : $ 0. 009
--------------------
AI Message
--------------------
DocsScraper . jl is a Julia package designed to create a vector database from input URLs. It scrapes and parses the URLs and, with the assistance of
PromptingTools . jl, creates a vector store that can be utilized in RAG (Retrieval - Augmented Generation) applications. DocsScraper . jl integrates with
AIHelpMe . jl and PromptingTools . jl to provide efficient and relevant query retrieval, ensuring that the responses generated by the system are specific to the content in the created database.
Astuce : utilisez pprint
pour des sorties plus agréables avec des sources et last_result
pour des sorties plus détaillées (avec des sources).
using AIHelpMe : last_result
# last_result() returns the last result from the RAG pipeline, ie, same as running aihelp(; return_all=true)
print ( last_result ())
make_knowledge_packs
crée les fichiers suivants :
index_name
│
├── Index
│ ├── index_name__artifact__info.txt
│ ├── index_name__vDate__model_embedding_size-embedding_type__v1.0.hdf5
│ └── index_name__vDate__model_embedding_size-embedding_type__v1.0.tar.gz
│
├── Scraped_files
│ ├── scraped_hostname-chunks-max-chunk_size-min-min_chunk_size.jls
│ ├── scraped_hostname-sources-max-chunk_size-min-min_chunk_size.jls
│ └── . . .
│
└── index_name_URL_mapping.csv
Ce projet a été développé dans le cadre du programme Google Summer of Code (GSoC). GSoC est un programme mondial qui offre aux étudiants développeurs des allocations pour écrire du code pour des projets open source. Nous sommes reconnaissants du soutien et de l'opportunité fournis par Google et la communauté open source à travers cette initiative.