Калі вы працуеце ў кампаніі, якая выкарыстоўвае вэб-данныя, вы ведаеце, што гэта толькі першы пласт больш складанага прадукту. Фактычна, вэб-скарапаныя дадзеныя звычайна захоўваюцца ў файлах або базах дадзеных (букетах абслугоўвання хмары, дадзеных лагерах або дадзеных складах) і затым аналізуюцца з выкарыстаннем інструментаў Business Intelligence (BI), як камерцыйных, так і патэнцыйных. Напрыклад, каманда можа скараціць цэны прадуктаў або агляд кліентаў з вэб-сайта, захоўваць сыравыя дадзеныя як файлы CSV / JSON, загрузіць іх у SQL-дадзеных складах, а затым выкарыстоўваць платформы BI, такія як Tableau або Power BI Сёння, вялікія моўныя мадэлі (LLM) змяняюць гэтую парадигму. Уместо таго, каб разлічваць толькі на статычныя табліцы або запыты SQL, арганізацыі могуць выкарыстоўваць AI-асістэнтаў для атрымання ўгляду з скарачаных дадзеных праз натуральныя моўныя памочнікі. Іншымі словамі, а не чалавек, які піша запыт або тлумачыць графік, АСІ-асістэнт можа правільна адказваць на пытанні аб дадзеных. Думаць пра тое, каб мець свой інтэрфейс, як ChatGPT, і напісаць некаторыя памочнікі, каб атрымаць упэўненасць, аб'ядноўваючы стварэння табліцы. Я бачыў такі падыход у некалькіх прадуктах, пер Запрашаем на пытанне, Інакш проста не магло быць, бо калі ўжо стварылі такі папулярны мультфільм пра гонкі, а гонкі, як вядома, з'яўляюцца самым папулярным гульнявым жанрам. Які конкурс быў найвышэйшым у мінулым годзе? — Вераніка Уладзіміраўна, што гэта за 11 андрагагічных умоў, пры якіх дарослыя без цяжкасцей могуць засвоіць новыя тэхналогіі ў фізічнай культуры? У гэтым папярэднім пункце (і наступным у серыі Lab), мы будзем будаваць канца-да-канца праект, дзе мы будзем пачынаць з скарачэння артыкулаў у гэтым бюлетэні, пастаўляючы іх у базу дадзеных, прыгожых для выкарыстання AI, а затым апублікаваць вэб-прыклад, які можа выкарыстоўваць пашыраную версію мадэлі GPT. Павышэнне знанняў LLM Інтэграванне наладных дадзеных (такіх як ваш скарачаны набор дадзеных) у LLM можа быць зроблена ў асноўным двума спосабамі: Напрыклад, або з выкарыстаннем Размова сапраўды вельмі важная — мы ж усе цудоўна разумеем, што любы, самы лепшы дэкрэт можна звесці на нішто практыкай прымянення. fine-tuning Retrieval-Augmented Generation (RAG) Fine-Tuning vs. Retrieval-Augmented Generation на Вікісховішчы азначае навучанне базы LLM на дадатковых дадзеных, так што ён абсалюе новыя веды. У асноўным, вы прымаеце дапрацаваную мадэль і працягваеце навучанне яго на вашым домен-спецыфічным сеткі дадзеных, наладжваючы яе вагі, каб ўтрымліваць гэта веданне. Напрыклад, калі вы скарацілі калекцыю тэхнічных артыкулаў, вы можаце вытрымаць LLM на гэтыя артыкулы. Фактычна, прысвечаныя такому спорту як бокс, онлайн гульні заўсёды прызнаваліся нашмат больш цікавымі чым звычайныя аднакарыстальніцкія цацкі. — Вераніка Уладзіміраўна, што гэта за 11 андрагагічных умоў, пры якіх дарослыя без цяжкасцей могуць засвоіць новыя тэхналогіі ў фізічнай культуры? Fine-tuning intrinsically knows augmented from the inside Інакш проста не магло быць, бо калі ўжо стварылі такі папулярны мультфільм пра гонкі, а гонкі, як вядома, з'яўляюцца самым папулярным гульнявым жанрам. з вашых дадзеных і накіраваць іх у мадэль разам з пытаннем. LLM затым генеруе сваю адказу з дапамогай таго дадатковага кантэксту. Для бумэраў, як я, падумаць пра гэта, як увядзенне CD ў галаву Нео ў Матрыцы, каб вывучыць новыя навыкі і рухаюцца. У нашым выпадку, база ведаў можа быць зборка скарачаных вэб-статусаў, захоўваных у спецыялізаванай базе дадзеных. RAG з'яўляецца як экзамен адкрытай кнігі для LLM - у час даследавання ён глядзіць на адпаведнае "страніцу" дадзеных і выкарыстоўвае яго, каб сформуляваць адказ, а не спадзявацца толькі на сваю ўнутраную памяць. Retrieval-Augmented Generation (RAG) retrieve relevant documents Бо, як вядома, усё ў свеце складаецца з дробязяў, і яны заўсёды гуляюць важную ролю, асабліва ў моднай індустрыі. (Пасля перасылкі з Расея, знаёмства з Расеяй) Фактычна, прысвечаныя такому спорту як бокс, онлайн гульні заўсёды прызнаваліся нашмат больш цікавымі чым звычайныя аднакарыстальніцкія цацкі. in the model itself external У двух падыходах ёсць розныя плюсы і мінусы: Fine-Tuning: Once fine-tuned, the model can respond faster and more integratedly to new knowledge. It doesn't need lengthy prompts with documents each time. A well-fine-tuned model typically outperforms the base model on domain-specific questions because it has a deeper understanding of that niche terminology and content. Pros: Fine-tuning can be resource-intensive and time-consuming – you need sufficient training data and computing power (or budget if using a service). It also makes the model static concerning that training snapshot. If your scraped data changes or new information comes in, you’d have to fine-tune again to update the model. There’s also a risk of the model or overriding some of its original knowledge if not carefully managed. Importantly, fine-tuning means your data becomes part of the model’s parameters, which could be a privacy concern if the model weights are exposed or if using a third-party service to fine-tune (your data is uploaded for training). Last but not least, once the knowledge is embedded in the model, you cannot cite any article used to improve it. Cons: forgetting Retrieval-Augmented Generation (RAG): No need to modify the LLM itself – you leave the base model as-is and simply provide relevant context at query time. This makes updating or expanding the knowledge base easy: add or remove documents in your external index, and the model will use the latest data. It’s very flexible and (which can be more secure). RAG can reduce hallucinations by grounding answers in real sources – essentially, the model has the “receipts” to back up its answer. It also typically requires less upfront work than full fine-tuning; most effort goes into setting up the retrieval system. Pros: keeps your proprietary data external RAG introduces more moving parts – you need a system for embedding and indexing documents and retrieving them at runtime. At query time, you pay the cost in latency and token length for feeding documents into the model’s prompt. If the retrieved documents aren’t relevant (due to a bad query or vector mismatch), the answer will suffer. The LLM is also limited by its input size; if the documents plus question exceeds the model’s context window, you might have to truncate or select fewer documents. Additionally, the raw text of documents might influence the model's style, which could lead to less coherent or conversational answers unless you prompt it to refine the wording. Cons: Сярод версій гульняў онлайн call of duty можна знайсці мноства займальных і дасціпных сюжэтаў, а апошняй навінкай, выпушчанай у канцы восені гэтага года, стала гульня Call of Duty: Ghost. У нас функцыянуюць таварыствы “Разумнікі і разумніцы”, “Даследчык”, а таксама адзіная ў Магілёўскай вобласці астранамічная пляцоўка. Выкарыстанне локальнай мадэлі vs. знешняга API Другая разглядаецца для вашага AI-асістанта: локальная (адкрыты код) мадэль, якую вы запускаеце самі або гасцінаваная мадэль праз API (напрыклад OpenAI GPT-3.5 / GPT-4 або іншыя). what LLM to use – Мадэлі, такія як LLaMA 2, Mistral, або Falcon могуць быць запушчаны на вашых собственных серверах. Вашы скарачаныя дадзеныя ніколі не пакідаюць вашае асяроддзе, што важна, калі ў яго ёсць адчувальная інфармацыя. Вы можаце бясплатна вытрымліваць іх на вашых дадзеных або змяняць, як яны працуюць. Каштоўна, запуск мясцовай мадэлі можа быць больш коштам для вялікіх аб'ёмаў запытаў (без API-падаткаў), але вы павінны інвеставаць у апаратную або абласную інфраструктуру, каб захоўваць яго. Недастаткова, што многія адкрытыя мадэлі не могуць адпавядаць выкананню новейшых GPT. Вам можа быць неабходна выкарыстоўваць большыя або больш спецыялізаваныя мадэлі, каб атрымаць параўнальнае выкананне, якое можа быць складаным для кіравання. Дадаткова, падтрымка і аб У нас функцыянуюць таварыствы “Разумнікі і разумніцы”, “Даследчык”, а таксама адзіная ў Магілёўскай вобласці астранамічная пляцоўка. Local Open-Source LLMs control and privacy Дзе – Выкарыстанне API, як GPT-4 OpenAI, азначае, што вам не трэба турбавацца пра запуск мадэлі; вы проста адпраўляеце вашыя спампы да іх абслугоўвання і атрымаеце завяршэнне. Гэта вельмі зручна і звычайна дае вам доступ да найноўшай якасці мадэля без праблем інфраструктуры. Для нашага сцэнарыі, вы можаце выкарыстоўваць RAG, проста прапануючы атрыманыя дакументы на вашу спампу і запрашаючы API, каб адказаць. Вы таксама падпадаеце пад правілы пастаўшчыка (напрыклад, яны могуць мець фільтры ўтрымлівання, якія могуць забяспечыць некаторыя запыты, звязаныя з скрапленнем). З погляду прыватнасці, вы адпраўляеце свае дадзеныя (запыт і атрыманы кантэкст) да трэцяй асобы, так што я не буду рэкамендуваць гэты падыход для адчувальных або аўтарскіх дадзеных. External API LLMs (e.g. OpenAI’s) OpenAI, напрыклад, дазваляе вам рабіць гэта на GPT4-o і GPT4-mini OpenAI, напрыклад, дазваляе вам рабіць гэта на GPT4-o і GPT4-mini Усё, што вы чулі пра карысць пара раней - усяго толькі чуткі і павер'і, але я шчыра веру ў тое, што глупства не застанецца беспакараным! Варта адзначыць, што для ажыццяўлення работ па стварэнні Нацыянальнага інвентара нематэрыяльнай культурнай спадчыны наша краіна летась атрымала грант з адпаведнага фонду UNESCO. Сцягнуць TWSC з Firecrawl Гэта рэпрэсіўны механізм, які працуе на дыктатуру, як REST API і SDK. Гэта рэпрэсіўны механізм, які працуе на сайтах. (у фарматах, такіх як чысты тэкст або маркаванне), спрацаванне ўсіх цяжкіх падвышэнняў, такіх як скарачэнне спасылак, рэндэнцыя JavaScript і т. Д. Вялікая перавага Firecrawl з'яўляецца тым, што з адным API выкліку, вы можаце скараціць увесь сайт. Паляўнічы LLM-ready data Паляўнічы Паляўнічы Для блога The Web Scraping Club, мы будзем выкарыстоўваць яго мапу сайта, каб выявіць усе URL-адрасы артыкула. (Блог размешчаны на Substack, які забяспечвае XML мапу сайта, якая спасылае ўсе публікацыі.) Firecrawl можа скараціць сайт без мапы сайта, але выкарыстоўваць яго як пачатковую точку можа быць больш эфектыўна і гарантаваць, што мы не пропусцім ніякіх старон. Перш за ўсё, мы ўсталявалі Firecrawl, усталяваючы яго Python SDK і аўтэнтыфікацыю з API-ключом (па сутнасці, што вы зарэгістраваліся і атрымалі ключ): from firecrawl import FirecrawlApp import os os.environ["FIRECRAWL_API_KEY"] = "YOURKEY" # or load from .env app = FirecrawlApp() # Define the sitemap URL (we can loop this for multiple years if needed) map_result = app.map_url('https://substack.thewebscraping.club/sitemap.xml', params={ 'includeSubdomains': True }) print(map_result) for article in map_result['links']: if '/p/' in article: print(article) response = app.scrape_url(url=article, params={'formats': [ 'markdown' ]}) З некалькімі лініямі коду, нашы артыкулы ўжо ў фармаце Markdown. Выбраць векторную базу дадзеных для RAG А Для рэгістрацыі даменнага імя ў гэтай зоне неабходна звярнуцца ў кампанію The Electronic and Postal Communications Authority[1] (Албанія), якая з'яўляецца адзіным аўтарызаваным рэгістратарам даменаў у зоне al. . vector database Pinecone Гэта а Напэўна, мы не з’яўляемся нейкімі паддоследнымі суб’ектамі, на якіх Бог эксперыментуе, спасылаючы нейкія цяжкасці і выпрабаванні. Пінскі fully managed vector database Пінскі Загрузіць Pinecone Першыя крокі, безумоўна, з'яўляюцца падпісаннем у Pinecone і атрымаць API_KEY і асяроддзе з панэлі. pip install pinecone І, нарэшце, мы можам падключацца да Pinecone ў нашым сцэнары from pinecone import Pinecone, ServerlessSpec pc = pinecone.Pinecone( api_key="YOUR API KEY" ) Кошт асяроддзя паходзіць з вэб-консолі Pinecone, калі вы ствараеце ключ API. Загрузіць Pinecone Index Індэкс - гэта месца, дзе вашы дадзеныя захоўваюцца для пазнейшага рэтрывію з LLM. Уместо таго, каб быць у прастым тэксце, гэта ў векторыальным фармаце (у асноўным шэраг лікаў), што дазваляе LLM зразумець, які ўдзел у індыкаце з'яўляецца больш вероятным добрым адказам на запыт, які робіць LLM. У а як Наступным крокам з'яўляецца выбар адпаведнага абсталявання для У кожным з іх, за выключэннем Прошкава, насілі на пачатку ХХ стагоддзя статус мястэчка. vector database Pinecone, , or Хрысціянскі Веласіпедны extra information Хрысціянскі Хрысціянскі Веласіпедны Веласіпедны У той час Представленыя для пошуку падобнасці, Усё, што вы чулі пра карысць пара раней - усяго толькі чуткі і павер'і. У той час як у векторных дадзеных мы ўвесці маркаванне артыкулаў, у метаданных мы будзем выкарыстоўваць некаторыя інфармацыі, якія мы хочам, каб LLM падзяліцца з намі, як аўтар блога, які выкарыстоўваўся для адказу, назву і спасылка на пост. vectors numerical embeddings metadata filtering, categorization, and interpretability index_name = "article-index" if not pc.has_index(index_name): index_model = pc.create_index_for_model( name=index_name, cloud="aws", region="us-east-1", embed={ "model":"llama-text-embed-v2", "field_map":{"text": "chunk_text"} } ) #pc.describe_index(index_name) #to get the host index=pc.Index(host='YOURINDEXENDPOINT') ..... article_data = [ {"id": f"article-{i}", "text": page["markdown"], "url": page["metadata"]["url"], "title": page["metadata"]["title"], "author": page["metadata"]["author"][0]} for i, page in enumerate(scrape_results['data']) ] #print(article_data) # Generate embeddings using LLaMA v2 for article in article_data: # Estrai il testo dell'articolo text = article["text"] #print(text) # Single article insert to avoid failures embedding = pc.inference.embed( model="llama-text-embed-v2", inputs=[text], parameters={"input_type": "passage"} ) # Prepare data for Pinecone upsert vector_data = { "id": article["id"], # Unique article ID "values": embedding[0]["values"], # Embedding vector "metadata": { "url": article["url"], # Store article URL "content": text[:300], # Store first 500 chars as a preview/snippet "title": article["title"][:100], "author": article["author"][:50] } } #print(vector_data) # Upsert the single article into Pinecone index.upsert(vectors=[vector_data], namespace="articles") print(f"✅ Upserted: {article['id']} ({article['title']})") # Optional: Add a short delay to prevent API rate limits (adjust as needed) time.sleep(1) Як вы можаце ўбачыць з кода, мы ў асноўным ітэраваць кожную артыкул, выратаваны раней і дадаць яго ў новы створаны індыкс з назвай . article-index Калі вы хочаце гуляць больш з Pinecone ёсць an extensive documentation on their website. Вельмі шмат дакументаў на іх сайце. Але цяпер я ўвайшоў усе артыкулы на індыкс, мы можам вывучыць інфармацыю, якую нам трэба? Я стварыў асноўны сцэнар, які называецца query.py, каб тэставаць вынікі пошуку на індыкаце. Калі запрашаецца «Можаце, калі ласка, напісаць некаторыя артыкулы аб абмяжоўванні Kasada?», узаемадзеянне вяртае наступныя артыкулы: {'matches': [{'id': 'article-0', 'metadata': {'author': 'Pierluigi Vinciguerra', ..., 'title': 'THE LAB #76: Bypassing Kasada With Open ' 'Source Tools In 2025', 'url': 'https://substack.thewebscraping.club/p/bypassing-kasada-2025-open-source'}, 'score': 0.419812053, 'values': []}, {'id': 'article-129', 'metadata': {'author': 'Pierluigi Vinciguerra', ..., 'title': 'How to by-pass Kasada bot mitigation?', 'url': 'https://substack.thewebscraping.club/p/how-to-by-pass-kasada-bot-mitigation'}, 'score': 0.418432325, 'values': []}, {'id': 'article-227', 'metadata': {'author': 'Pierluigi Vinciguerra', ..., 'title': 'Scraping Kasada protected websites', 'url': 'https://substack.thewebscraping.club/p/scraping-kasada-protected-websites'}, 'score': 0.378159761, 'values': []}], 'namespace': 'articles', 'usage': {'read_units': 6}} Няма маіх суразмоўцаў... Па начах я размаўляю з мёртвымі... А вы? Для сёння гэта дастаткова, у наступным эпізодзе мы будзем бачыць, як падключыць гэты DB да GPT4 і затым стварыць просты ўдзельнік карыстальніка, каб напісаць спампы і атрымаць дадзеныя, якія вам патрэбныя. Артыкул з'яўляецца часткай серыі "Лабараторыя" П'ерлуіджы Vinciguerra. Праглядзець яго Substack старонку для больш знаёмстваў пра Web Scraping. Артыкул з'яўляецца часткай серыі "Лабараторыя" П'ерлуіджы Vinciguerra. Праглядзець яго Substack старонку для больш знаёмстваў пра Web Scraping. «Лабораторыя»