DocsScraper ist ein Paket zum Erstellen von „Wissenspaketen“ aus Online-Dokumentationsseiten für die Julia-Sprache.
Es durchsucht und analysiert die URLs und erstellt mit Hilfe von PromptingTools.jl einen Index von Chunks und deren Einbettungen, die in RAG-Anwendungen verwendet werden können. Es lässt sich in AIHelpMe.jl und PromptingTools.jl integrieren, um einen hocheffizienten und relevanten Abfrageabruf zu ermöglichen und sicherzustellen, dass die vom System generierten Antworten spezifisch für den Inhalt in der erstellten Datenbank sind.
Um DocsScraper zu installieren, verwenden Sie den Julia-Paketmanager und den Paketnamen (es ist noch nicht registriert):
using Pkg
Pkg . add (url = " https://github.com/JuliaGenAI/DocsScraper.jl " )
Voraussetzungen:
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
ist der Einstiegspunkt zum Paket. Diese Funktion übernimmt die zu analysierenden URLs und gibt den Index zurück. Dieser Index kann an AIHelpMe.jl übergeben werden, um Anfragen zu den erstellten Wissenspaketen zu beantworten.
Standardparameter für make_knowledge_packs
:
embedding_bool = true
.embedding_dimension = custom_dimension
.max_chunk_size = custom_max_size
und min_chunk_size = custom_min_size
. Hinweis: Für den täglichen Gebrauch ist die Einbettungsgröße = 1024 und der Einbettungstyp = Bool ausreichend. Dies ist kompatibel mit den AIHelpMe-Pipelines :bronze
und :silver
( update_pipeline(:bronze)
). Für bessere Ergebnisse verwenden Sie Einbettungsgröße = 3072 und Einbettungstyp = Float32. Dies erfordert die Verwendung von :gold
Pipeline (siehe mehr ?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.
Tipp: Verwenden Sie pprint
für schönere Ausgaben mit Quellen und last_result
für detailliertere Ausgaben (mit Quellen).
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
erstellt die folgenden Dateien:
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
Dieses Projekt wurde im Rahmen des Google Summer of Code (GSoC)-Programms entwickelt. GSoC ist ein globales Programm, das studentischen Entwicklern Stipendien für das Schreiben von Code für Open-Source-Projekte bietet. Wir sind dankbar für die Unterstützung und die Möglichkeiten, die Google und die Open-Source-Community durch diese Initiative bieten.