Ваши LLM заслуживают лучшего вклада.
Читатель делает две вещи:
Прочтите : он преобразует любой URL-адрес в формат , удобный для LLM, с помощью https://r.jina.ai/https://your.url
. Получите улучшенную производительность своих агентов и систем RAG бесплатно.
Поиск : он выполняет поиск в Интернете по заданному запросу с помощью https://s.jina.ai/your+query
. Это позволяет вашим магистрам права получать доступ к новейшим мировым знаниям из Интернета.
Посмотрите живую демонстрацию
Или просто посетите эти 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
. Он может рекурсивно сканировать веб-сайт и извлекать наиболее релевантные страницы для данной веб-страницы.
2024-07-15 : Чтобы ограничить результаты s.jina.ai
определенным доменом/веб-сайтом, вы можете установить, например, site=jina.ai
в параметрах запроса, что включает поиск по сайту. Чтобы получить больше возможностей, попробуйте нашу обновленную живую демо-версию.
01.07.2024 : Мы пресекли DDoS-атаку и другие злоупотребления трафиком с 27 июня. Мы также обнаружили ошибку, появившуюся 28 июня, которая может привести к увеличению задержки на некоторых веб-сайтах. Атака и ошибка устранены; Если у вас наблюдалась высокая задержка r.jina.ai в период с 27 по 30 июня, сейчас она должна вернуться в норму.
30 мая 2024 г .: Reader теперь может читать произвольный PDF-файл с любого URL-адреса! Сравните этот PDF-файл с сайта NASA.gov и оригинал.
15 мая 2024 г .: Мы представили новую конечную точку s.jina.ai
, которая выполняет поиск в Интернете и возвращает пять лучших результатов, каждый в формате, удобном для LLM. Подробнее об этой новой функции можно прочитать здесь.
08.05.2024 : Подпись к изображению по умолчанию отключена для уменьшения задержки. Чтобы включить его, установите x-with-generated-alt: true
в заголовке запроса.
03.05.2024 : Мы наконец разрешили DDoS-атаку, произошедшую 29 апреля. Теперь наш API стал намного надежнее и масштабируемее, чем когда-либо!
24.04.2024 : Теперь у вас есть более детальный контроль над API Reader с помощью заголовков, например пересылка файлов cookie с использованием HTTP-прокси.
15 апреля 2024 г .: Reader теперь поддерживает чтение изображений! Он подписывает все изображения по указанному URL-адресу и добавляет Image [idx]: [caption]
в качестве альтернативного тега (если он изначально отсутствует). Это позволяет последующим специалистам 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
автоматически извлекает для вас контент из 5 лучших URL-адресов результатов поиска (повторное использование технологического стека http://r.jina.ai
). Это означает, что вам не придется самостоятельно решать проблемы с рендерингом, блокировкой браузера и другими проблемами, связанными с JavaScript и CSS.
s.jina.ai
для поиска по сайту Просто укажите site
в параметрах запроса, например:
завиток 'https://s.jina.ai/When%20was%20Jina%20AI%20founded%3F?site=jina.ai&site=github.com'
Мы настоятельно рекомендуем использовать конструктор кода для изучения различных комбинаций параметров API Reader.
Как вы уже видели выше, управлять поведением Reader API можно с помощью заголовков запросов. Вот полный список поддерживаемых заголовков.
Вы можете включить функцию подписи к изображению через заголовок x-with-generated-alt: true
.
Вы можете попросить Reader API переслать настройки файлов cookie через заголовок x-set-cookie
.
Обратите внимание, что запросы с файлами 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
чтобы API Reader сосредоточился на определенной части страницы.
Присвоив заголовку x-target-selector
значение селектора CSS, Reader API возвращает содержимое соответствующего элемента вместо полного HTML. Установка этого заголовка полезна, когда автоматическое извлечение контента не позволяет захватить желаемый контент, и вы можете вручную выбрать правильную цель.
Установив заголовок x-wait-for-selector
для селектора CSS, Reader API будет ждать, пока соответствующий элемент будет отображен, прежде чем возвращать содержимое. Если вы уже указали x-wait-for-selector
, этот заголовок можно опустить, если вы планируете ждать того же элемента.
r.jina.ai
для загрузки одностраничных приложений (SPA)Многие веб-сайты в настоящее время полагаются на фреймворки JavaScript и рендеринг на стороне клиента. Обычно известно как одностраничное приложение (SPA). Благодаря Puppeteer и безголовому браузеру Chrome Reader изначально поддерживает загрузку этих веб-сайтов. Однако из-за особого подхода к разработке некоторых SPA могут потребоваться дополнительные меры предосторожности.
По определению веб-стандартов, контент, следующий после #
в URL-адресе, не отправляется на сервер. Чтобы устранить эту проблему, используйте метод POST
с параметром url
в теле.
curl -X POST 'https://r.jina.ai/' -d 'url=https://example.com/#/route'
Некоторые SPA или даже некоторые веб-сайты, которые не являются строго SPA, могут отображать предварительно загруженное содержимое перед последующей динамической загрузкой основного контента. В этом случае Reader может захватывать предварительно загруженное содержимое вместо основного содержимого. Чтобы смягчить эту проблему, вот несколько возможных решений:
x-timeout
Если время ожидания указано явно, Reader не будет пытаться вернуться раньше времени и будет ждать простоя сети до тех пор, пока не истечет время ожидания. Это полезно, когда целевой веб-сайт в конечном итоге перейдет в режим простоя сети.
локон 'https://example.com/' -H 'х-тайм-аут: 30'
x-wait-for-selector
Если селектор ожидания указан явно, Reader будет ждать появления указанного селектора CSS до тех пор, пока не истечет время ожидания. Это полезно, когда вы точно знаете, какой элемент ожидать.
curl 'https://example.com/' -H 'x-wait-for-selector: #content'
Режим потоковой передачи полезен, когда вы обнаружите, что стандартный режим дает неполный результат. Это связано с тем, что Reader будет ждать немного дольше, пока страница не будет стабильно отображаться. Используйте заголовок Accept для переключения режима потоковой передачи:
завиток -H "Принять: текст/поток событий" https://r.jina.ai/https://en.m.wikipedia.org/wiki/Main_Page
Данные поступают потоком; каждый последующий фрагмент содержит более полную информацию. Последний фрагмент должен обеспечить наиболее полный и окончательный результат. Если вы работаете в LLM, обратите внимание, что это поведение отличается от потоковой передачи текста LLM.
Например, сравните эти две команды Curl ниже. Вы можете видеть, что потоковая передача наконец-то дает вам полную информацию, тогда как стандартный режим - нет. Это связано с тем, что загрузка контента на этом конкретном сайте инициируется некоторыми js после полной загрузки страницы, а стандартный режим возвращает страницу «слишком рано».
curl -H 'x-no-cache: true' https://access.redhat.com/security/cve/CVE-2023-45853 Curl -H "Принять: текст/поток событий" -H 'x-no-cache: true' https://r.jina.ai/https://access.redhat.com/security/cve/CVE-2023 -45853
Примечание.
-H 'x-no-cache: true'
используется только в демонстрационных целях для обхода кеша.
Режим потоковой передачи также полезен, если ваша нижестоящая система LLM/агент требует немедленной доставки контента или обработки данных порциями для чередования времени обработки ввода-вывода и 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 для управления форматом вывода:
завиток -H "Принять: приложение/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 для переключения режима потоковой передачи:
завиток -H "X-With-Generated-Alt: true" https://r.jina.ai/https://en.m.wikipedia.org/wiki/Main_Page
Для запуска проекта вам понадобятся следующие инструменты:
Node v18 (сборка не удалась для версии Node > 18)
Firebase CLI ( npm install -g firebase-tools
)
Для бэкэнда перейдите в каталог backend/functions
и установите зависимости npm.
git clone [email protected]:jina-ai/reader.gitcd backend/functions установка npm
thinapps-shared
? Вы могли заметить ссылку на подмодуль thinapps-shared
— внутренний пакет, который мы используем для совместного использования кода в наших продуктах. Хотя он не имеет открытого исходного кода и не является неотъемлемой частью функций Reader, он в основном помогает с декораторами, ведением журналов, управлением секретами и т. д. Пока можете его игнорировать.
Тем не менее, это единственная кодовая база https://r.jina.ai
, поэтому каждый раз, когда мы фиксируем здесь, мы будем развертывать новую версию на https://r.jina.ai
.
Пожалуйста, поднимите проблему с URL-адресом, с которым у вас возникли проблемы. Мы разберемся и постараемся исправить.
Reader поддерживается Jina AI и лицензируется Apache-2.0.