LLM ของคุณสมควรได้รับข้อมูลที่ดีกว่า
Reader ทำสองสิ่ง:
อ่าน : มันจะแปลง URL ใด ๆ ให้เป็นอินพุต ที่เป็นมิตรกับ LLM ด้วย https://r.jina.ai/https://your.url
รับเอาต์พุตที่ได้รับการปรับปรุงสำหรับตัวแทนและระบบ RAG ของคุณโดยไม่มีค่าใช้จ่าย
ค้นหา : ค้นหาเว็บด้วยคำค้นหาที่กำหนดด้วย https://s.jina.ai/your+query
สิ่งนี้ทำให้ LLM ของคุณสามารถเข้าถึงความรู้โลกล่าสุดจากเว็บ
ตรวจสอบการสาธิตสด
หรือเพียงไปที่ URL เหล่านี้ ( อ่าน ) https://r.jina.ai/https://github.com/jina-ai/reader ( ค้นหา ) https://s.jina.ai/Who%20will%20win %202024%20US%20ประธานาธิบดี%20การเลือกตั้ง%3F และเห็นตัวเอง
คุณสามารถใช้ Reader API ในการผลิตได้ตามใจชอบ เป็นบริการฟรี เสถียร และปรับขนาดได้ เรากำลังรักษามันไว้อย่างแข็งขันในฐานะหนึ่งในผลิตภัณฑ์หลักของ Jina AI ตรวจสอบขีดจำกัดอัตรา
08-10-2024 : เปิด adaptive crawler
สามารถรวบรวมข้อมูลเว็บไซต์แบบวนซ้ำและแยกหน้าที่เกี่ยวข้องมากที่สุดสำหรับหน้าเว็บที่กำหนด
15-07-2024 : หากต้องการจำกัดผลลัพธ์ของ s.jina.ai
ไว้เฉพาะโดเมน/เว็บไซต์ คุณสามารถตั้งค่า เช่น site=jina.ai
ในพารามิเตอร์การค้นหา ซึ่งเปิดใช้งานการค้นหาในไซต์ สำหรับตัวเลือกเพิ่มเติม ลองสาธิตสดที่อัปเดตของเรา
01-07-2024 : เราได้แก้ไขการโจมตี DDoS และการละเมิดการรับส่งข้อมูลอื่นๆ ตั้งแต่วันที่ 27 มิถุนายน นอกจากนี้เรายังพบข้อบกพร่องที่เกิดขึ้นในวันที่ 28 มิถุนายน ซึ่งอาจทำให้เวลาแฝงสูงขึ้นสำหรับบางเว็บไซต์ การโจมตีและจุดบกพร่องได้รับการแก้ไขแล้ว หากคุณพบปัญหา r.jina.ai ที่มีความหน่วงสูงระหว่างวันที่ 27-30 มิถุนายน ตอนนี้ก็ควรจะกลับมาเป็นปกติแล้ว
30-05-2024 : ขณะนี้ผู้อ่านสามารถอ่าน PDF ที่ไม่ตั้งใจได้จาก URL ใดก็ได้! ตรวจสอบผลลัพธ์ PDF นี้จาก NASA.gov เทียบกับต้นฉบับ
15-05-2024 : เราเปิดตัวตำแหน่งข้อมูลใหม่ s.jina.ai
ที่ค้นหาบนเว็บและส่งกลับผลลัพธ์ 5 อันดับแรก โดยแต่ละรายการอยู่ในรูปแบบที่เหมาะกับ LLM อ่านเพิ่มเติมเกี่ยวกับคุณสมบัติใหม่นี้ได้ที่นี่
08-05-2024 : คำบรรยายภาพจะปิดตามค่าเริ่มต้นเพื่อให้มีเวลาแฝงที่ดีขึ้น หากต้องการเปิดใช้งาน ให้ตั้งค่า x-with-generated-alt: true
ในส่วนหัวของคำขอ
03-05-2024 : ในที่สุดเราก็สามารถแก้ไขการโจมตี DDoS ได้ตั้งแต่วันที่ 29 เมษายน ตอนนี้ API ของเรามีความน่าเชื่อถือและปรับขนาดได้มากกว่าที่เคย!
24-04-2024 : ตอนนี้คุณสามารถควบคุม Reader API ได้อย่างละเอียดยิ่งขึ้นโดยใช้ส่วนหัว เช่น คุกกี้การส่งต่อ โดยใช้พร็อกซี HTTP
15-04-2024 : ขณะนี้ Reader รองรับการอ่านรูปภาพแล้ว! โดยใส่คำอธิบายรูปภาพทั้งหมดใน URL ที่ระบุ และเพิ่ม Image [idx]: [caption]
เป็นแท็ก alt (หากขาดไปในตอนแรก) สิ่งนี้ทำให้ LLM ดาวน์สตรีมสามารถโต้ตอบกับรูปภาพในการให้เหตุผล การสรุป ฯลฯ ดูตัวอย่างที่นี่
r.jina.ai
สำหรับการดึง URL เดียว เพียงเติม https://r.jina.ai/
ต่อท้าย URL ใดก็ได้ ตัวอย่างเช่น หากต้องการแปลง URL https://en.wikipedia.org/wiki/Artificial_intelligence
เป็นอินพุตที่เป็นมิตรกับ LLM ให้ใช้ URL ต่อไปนี้:
https://r.jina.ai/https://en.wikipedia.org/wiki/Artificial_intelligence
r.jina.ai
เพื่อดึงข้อมูลเว็บไซต์แบบเต็ม (Google Colab)s.jina.ai
ในการค้นหาเว็บ เพียงเติม https://s.jina.ai/
ต่อคำค้นหาของคุณ โปรดทราบว่าหากคุณใช้โค้ดนี้ โปรดอย่าลืมเข้ารหัสคำค้นหาของคุณก่อน เช่น หากข้อความค้นหาของคุณคือ Who will win 2024 US presidential election?
จากนั้น url ของคุณควรมีลักษณะดังนี้:
https://s.jina.ai/Who%20will%20win%202024%20US%20presidential%20election%3F
เบื้องหลัง Reader จะค้นหาเว็บ ดึงผลลัพธ์ 5 อันดับแรก เข้าชมแต่ละ URL และใช้ r.jina.ai
กับมัน สิ่งนี้แตกต่างจาก web search function-calling
จำนวนมากในเฟรมเวิร์กเอเจนต์/RAG ซึ่งมักจะส่งคืนเฉพาะชื่อ URL และคำอธิบายที่ API ของเครื่องมือค้นหาให้ไว้ หากคุณต้องการอ่านผลการค้นหาอย่างเจาะลึกยิ่งขึ้น คุณต้องดึงเนื้อหาด้วยตนเองจาก URL นั้น ด้วย Reader http://s.jina.ai
จะดึงเนื้อหาจาก URL ผลการค้นหา 5 อันดับแรกสำหรับคุณโดยอัตโนมัติ (นำกลุ่มเทคโนโลยีที่อยู่เบื้องหลัง http://r.jina.ai
มาใช้ซ้ำ) ซึ่งหมายความว่าคุณไม่จำเป็นต้องจัดการกับการแสดงผลของเบราว์เซอร์ การบล็อก หรือปัญหาใดๆ ที่เกี่ยวข้องกับ JavaScript และ CSS ด้วยตัวคุณเอง
s.jina.ai
สำหรับการค้นหาภายในไซต์ เพียงระบุ site
ในพารามิเตอร์การค้นหา เช่น:
curl 'https://s.jina.ai/When%20was%20Jina%20AI%20founded%3F?site=jina.ai&site=github.com'
เราขอแนะนำอย่างยิ่งให้ใช้ตัวสร้างโค้ดเพื่อสำรวจชุดพารามิเตอร์ต่างๆ ของ Reader API
ดังที่คุณเห็นข้างต้น เราสามารถควบคุมพฤติกรรมของ Reader API ได้โดยใช้ส่วนหัวของคำขอ นี่คือรายการส่วนหัวที่รองรับทั้งหมด
คุณสามารถเปิดใช้งานคุณลักษณะคำบรรยายภาพได้ผ่านทางส่วนหัว x-with-generated-alt: true
คุณสามารถขอให้ Reader API ส่งต่อการตั้งค่าคุกกี้ผ่านส่วนหัว x-set-cookie
โปรดทราบว่าคำขอที่มีคุกกี้จะไม่ถูกแคช
คุณสามารถข้ามการกรอง readability
ผ่านส่วนหัว x-respond-with
โดยเฉพาะ:
x-respond-with: markdown
ส่งคืนมาร์กดาวน์ โดยไม่ต้อง ผ่าน reability
x-respond-with: html
ส่งคืน documentElement.outerHTML
x-respond-with: text
ส่งคืน document.body.innerText
x-respond-with: screenshot
ส่งคืน URL ของภาพหน้าจอของหน้าเว็บ
คุณสามารถระบุพร็อกซีเซิร์ฟเวอร์ผ่านส่วนหัว x-proxy-url
คุณสามารถปรับแต่งความทนทานต่อแคชได้ผ่านทางส่วนหัว x-cache-tolerance
(จำนวนเต็มเป็นวินาที)
คุณสามารถข้ามหน้าที่แคชไว้ได้ (ตลอดอายุ 3600) ผ่านทางส่วนหัว x-no-cache: true
(เทียบเท่ากับ x-cache-tolerance: 0
)
หากคุณทราบโครงสร้าง HTML ของหน้าเป้าหมายของคุณอยู่แล้ว คุณอาจระบุ x-target-selector
หรือ x-wait-for-selector
เพื่อกำหนดให้ Reader API มุ่งเน้นไปที่ส่วนใดส่วนหนึ่งของหน้า
ด้วยการตั้งค่าส่วนหัว x-target-selector
เป็นตัวเลือก CSS ทำให้ Reader API ส่งคืนเนื้อหาภายในองค์ประกอบที่ตรงกัน แทนที่จะเป็น HTML แบบเต็ม การตั้งค่าส่วนหัวนี้มีประโยชน์เมื่อการแยกเนื้อหาอัตโนมัติไม่สามารถจับเนื้อหาที่ต้องการได้ และคุณสามารถเลือกเป้าหมายที่ถูกต้องได้ด้วยตนเอง
ด้วยการตั้งค่าส่วนหัว x-wait-for-selector
เป็นตัวเลือก CSS นั้น Reader API จะรอจนกว่าองค์ประกอบที่ตรงกันจะถูกแสดงผลก่อนที่จะส่งคืนเนื้อหา หากคุณระบุ x-wait-for-selector
แล้ว คุณสามารถละเว้นส่วนหัวนี้ได้หากคุณวางแผนที่จะรอองค์ประกอบเดียวกัน
r.jina.ai
สำหรับการดึงข้อมูลแอปพลิเคชันหน้าเดียว (SPA)เว็บไซต์จำนวนมากในปัจจุบันใช้เฟรมเวิร์ก JavaScript และการเรนเดอร์ฝั่งไคลเอ็นต์ โดยทั่วไปเรียกว่า Single Page Application (SPA) ต้องขอบคุณ Puppeteer และเบราว์เซอร์ Chrome ที่ไม่มีหัว ทำให้ Reader รองรับการดึงข้อมูลเว็บไซต์เหล่านี้โดยกำเนิด อย่างไรก็ตาม เนื่องจาก SPA บางแห่งได้รับการพัฒนาแนวทางเฉพาะ อาจมีข้อควรระวังเพิ่มเติมบางประการที่ต้องทำ
ตามคำจำกัดความของมาตรฐานเว็บ เนื้อหาจะอยู่หลัง #
ใน URL จะไม่ถูกส่งไปยังเซิร์ฟเวอร์ เพื่อบรรเทาปัญหานี้ ให้ใช้วิธี POST
พร้อมพารามิเตอร์ url
ในส่วนเนื้อหา
curl -X โพสต์ 'https://r.jina.ai/' -d 'url=https://example.com/#/route'
SPA บางแห่ง หรือแม้แต่บางเว็บไซต์ที่ไม่เคร่งครัด SPA อาจแสดงเนื้อหาที่โหลดล่วงหน้า ก่อนที่จะโหลดเนื้อหาหลักแบบไดนามิกในภายหลัง ในกรณีนี้ Reader อาจบันทึกเนื้อหาที่โหลดไว้ล่วงหน้าแทนเนื้อหาหลัก เพื่อบรรเทาปัญหานี้ ต่อไปนี้เป็นวิธีแก้ไขที่เป็นไปได้:
x-timeout
เมื่อมีการระบุการหมดเวลาไว้อย่างชัดเจน Reader จะไม่พยายามกลับมาก่อนเวลา และจะรอให้เครือข่ายไม่ได้ใช้งานจนกว่าจะถึงการหมดเวลา สิ่งนี้มีประโยชน์เมื่อในที่สุดเว็บไซต์เป้าหมายจะเข้าสู่เครือข่ายที่ไม่ได้ใช้งาน
curl 'https://example.com/' -H 'x-หมดเวลา: 30'
x-wait-for-selector
เมื่อมีการระบุตัวเลือกการรออย่างชัดเจน Reader จะรอการปรากฏตัวของตัวเลือก CSS ที่ระบุจนกว่าจะถึงระยะหมดเวลา สิ่งนี้มีประโยชน์เมื่อคุณรู้แน่ชัดว่าองค์ประกอบใดที่ต้องรอ
curl 'https://example.com/' -H 'x-wait-for-selector: #content'
โหมดสตรีมมิ่งมีประโยชน์เมื่อคุณพบว่าโหมดมาตรฐานให้ผลลัพธ์ที่ไม่สมบูรณ์ เนื่องจาก Reader จะรออีกสักหน่อยจนกว่าเพจจะแสดงผลได้ อย่างเสถียร ใช้ส่วนหัวที่ยอมรับเพื่อสลับโหมดสตรีมมิ่ง:
curl -H "ยอมรับ: ข้อความ/event-stream" https://r.jina.ai/https://en.m.wikipedia.org/wiki/Main_Page
ข้อมูลมาในสตรีม แต่ละส่วนต่อมาจะมีข้อมูลที่ครบถ้วนมากขึ้น ส่วนสุดท้ายควรให้ผลลัพธ์ที่สมบูรณ์และสุดท้ายที่สุด หากคุณมาจาก LLM โปรดทราบว่านี่เป็นพฤติกรรมที่แตกต่างจากการสตรีมการสร้างข้อความของ LLM
ตัวอย่างเช่น เปรียบเทียบคำสั่ง curl สองคำสั่งด้านล่างนี้ คุณสามารถดูได้ว่าการสตรีมจะให้ข้อมูลที่สมบูรณ์แก่คุณในที่สุด ในขณะที่โหมดมาตรฐานจะไม่ให้ข้อมูลดังกล่าว เนื่องจากการโหลดเนื้อหาบนไซต์นี้ถูกกระตุ้นโดย js บางตัว หลังจากที่ โหลดหน้าเว็บเต็มแล้ว และโหมดมาตรฐานจะส่งคืนหน้าเว็บ "เร็วเกินไป"
curl -H 'x-no-cache: จริง' https://access.redhat.com/security/cve/CVE-2023-45853 curl -H "ยอมรับ: ข้อความ/event-stream" -H 'x-no-cache: จริง' https://r.jina.ai/https://access.redhat.com/security/cve/CVE-2023 -45853
หมายเหตุ:
-H 'x-no-cache: true'
ใช้เพื่อวัตถุประสงค์ในการสาธิตเพื่อหลีกเลี่ยงแคชเท่านั้น
โหมดการสตรีมยังมีประโยชน์หากระบบดาวน์สตรีม LLM/เอเจนต์ของคุณต้องการการจัดส่งเนื้อหาทันที หรือจำเป็นต้องประมวลผลข้อมูลเป็นกลุ่มเพื่อแทรกเวลาประมวลผล I/O และ LLM ช่วยให้เข้าถึงได้รวดเร็วยิ่งขึ้นและจัดการข้อมูลได้อย่างมีประสิทธิภาพมากขึ้น:
Reader API: streamContent1 ----> streamContent2 ----> streamContent3 ---> ...
| | |
v | |
Your LLM: LLM(streamContent1) | |
v |
LLM(streamContent2) |
v
LLM(streamContent3)
โปรดทราบว่าในแง่ของความสมบูรณ์: ... > streamContent3 > streamContent2 > streamContent1
แต่ละชิ้นที่ตามมาจะมีข้อมูลที่ครบถ้วนมากขึ้น
นี่ยังเร็วมากและผลลัพธ์ก็ไม่ใช่ JSON ที่ "มีประโยชน์" จริงๆ ประกอบด้วยสามฟิลด์ url
title
และ content
เท่านั้น อย่างไรก็ตาม คุณสามารถใช้ Accept-header เพื่อควบคุมรูปแบบเอาต์พุตได้:
curl -H "ยอมรับ: application/json" https://r.jina.ai/https://en.m.wikipedia.org/wiki/Main_Page
โหมด JSON น่าจะมีประโยชน์มากกว่าใน s.jina.ai
มากกว่า r.jina.ai
สำหรับ s.jina.ai
ที่มีโหมด JSON จะส่งกลับผลลัพธ์ 5 รายการในรายการ โดยแต่ละรายการอยู่ในโครงสร้างของ {'title', 'content', 'url'}
รูปภาพทั้งหมดในหน้านั้นที่ไม่มีแท็ก alt
สามารถใส่คำบรรยายอัตโนมัติโดย VLM (โมเดลภาษาการมองเห็น) และจัดรูปแบบเป็น !(Image [idx]: [VLM_caption])[img_URL]
สิ่งนี้ควรให้คำแนะนำ ที่เพียงพอ สำหรับ LLM แบบข้อความดาวน์สตรีมของคุณในการรวมรูปภาพเหล่านั้นในการให้เหตุผล การเลือก และการสรุป ใช้ส่วนหัว x-with-generated-alt เพื่อสลับโหมดการสตรีม:
curl -H "X-With-Generated-Alt: จริง" https://r.jina.ai/https://en.m.wikipedia.org/wiki/Main_Page
คุณจะต้องมีเครื่องมือต่อไปนี้เพื่อดำเนินโครงการ:
โหนด v18 (บิลด์ล้มเหลวสำหรับโหนดเวอร์ชัน > 18)
Firebase CLI ( npm install -g firebase-tools
)
สำหรับแบ็กเอนด์ ให้ไปที่ไดเร็กทอรี backend/functions
และติดตั้งการขึ้นต่อกันของ npm
git clone [email protected]:jina-ai/reader.gitcd แบ็กเอนด์/ฟังก์ชัน ติดตั้ง npm
thinapps-shared
คืออะไร คุณอาจสังเกตเห็นการอ้างอิงถึงโมดูลย่อย thinapps-shared
ซึ่งเป็นแพ็คเกจภายในที่เราใช้เพื่อแชร์โค้ดในผลิตภัณฑ์ของเรา แม้ว่าจะไม่ใช่โอเพ่นซอร์สและไม่ได้เป็นส่วนสำคัญของฟังก์ชันของ Reader แต่ส่วนใหญ่จะช่วยในเรื่องการตกแต่ง การบันทึก การจัดการความลับ ฯลฯ อย่าลังเลที่จะเพิกเฉยต่อตอนนี้
กล่าวคือ นี่คือ โค้ดเบสเดียว ที่อยู่เบื้องหลัง https://r.jina.ai
ดังนั้นทุกครั้งที่เรากระทำที่นี่ เราจะปรับใช้เวอร์ชันใหม่กับ https://r.jina.ai
โปรดแจ้งปัญหาเกี่ยวกับ URL ที่คุณประสบปัญหา เราจะตรวจสอบและพยายามแก้ไข
Reader ได้รับการสนับสนุนโดย Jina AI และได้รับอนุญาตภายใต้ Apache-2.0