DocsScraper は、Julia 言語のオンライン ドキュメント サイトから「ナレッジ パック」を作成するように設計されたパッケージです。
URL をスクレイピングして解析し、PromptingTools.jl を利用して、RAG アプリケーションで使用できるチャンクとその埋め込みのインデックスを作成します。 AIHelpMe.jl および PromptingTools.jl と統合して、非常に効率的で関連性の高いクエリの取得を提供し、システムによって生成される応答が作成されたデータベースのコンテンツに固有であることを保証します。
DocsScraper をインストールするには、Julia パッケージ マネージャーとパッケージ名を使用します (まだ登録されていません)。
using Pkg
Pkg . add (url = " https://github.com/JuliaGenAI/DocsScraper.jl " )
前提条件:
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
パッケージへのエントリ ポイントです。この関数は、解析する URL を受け取り、インデックスを返します。このインデックスを AIHelpMe.jl に渡して、構築されたナレッジ パックのクエリに答えることができます。
デフォルトのmake_knowledge_packs
パラメータ:
embedding_bool = true
によってブール値に変更します。embedding_dimension = custom_dimension
によってカスタム サイズに変更します。max_chunk_size = custom_max_size
およびmin_chunk_size = custom_min_size
によって変更します。注:通常の使用では、埋め込みサイズ = 1024 および埋め込みタイプ = Bool で十分です。これは、AIHelpMe の:bronze
および:silver
パイプライン ( update_pipeline(:bronze)
) と互換性があります。より良い結果を得るには、埋め込みサイズ = 3072 および埋め込みタイプ = Float32 を使用します。これには:gold
パイプラインの使用が必要です (詳細は?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.
ヒント: ソースを含むより適切な出力にはpprint
使用し、(ソースを含む) より詳細な出力にはlast_result
使用します。
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
次のファイルを作成します。
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
このプロジェクトは、Google Summer of Code (GSoC) プログラムの一部として開発されました。 GSoC は、オープンソース プロジェクトのコードを作成するための奨学金を学生開発者に提供する世界的なプログラムです。この取り組みを通じて Google とオープンソース コミュニティが提供してくれたサポートと機会に感謝しています。