URLを指定するとページからタイトル、本文等の情報を取得するシンプルな本文抽出WEBアプリをgithubで公開しました

Jul 6, 2024, 9:20 AM
Dify などを使用していると、ウェブサイトの情報を取得したくなるときがあります。
Difyには、Jina Reader という高機能な本文抽出ツールが用意されていますが、有料で、そこまでは・・・と思ったので作りました。
基本的には、trafilatura とほぼ同じ機能です。

github リポジトリ

https://github.com/microaijp/simple-url-extractor

リクエスト

curl -X 'GET' \
'http://localhost:8002/v1/extract?url=https%3A%2F%2Fmicroai.jp%2Fblog%2F70b4bf89-fe4b-451f-ac81-2d757fca8b6a&cache_seconds=1' \
-H 'accept: application/json'

パラメータ

  • url : 抽出したいURLを指定
  • cache_seconds : 抽出結果をキャッシュする秒数
    抽出結果は、ファイルとして永続的に保持されます。その最終更新時刻が 現在時刻-cache_seconds を下回ったときは、新たにURLから最新情報を取得します。

レスポンス

{
"title": "Difyのバージョンが v0.6.11からv0.6.12 に上がったので、Kubernetes で運用しているDifyのバージョンアップを行ってみる | microAI",
"author": null,
"hostname": "microai.jp",
"date": "2024-06-29",
"fingerprint": "b0b37451d481f718",
"id": null,
"license": null,
"comments": "",
"raw_text": "2024/06/28 に v0.6.11 がリリースされていました。Difyは本当に素晴らしいアプリですが、不具合もまだまだ多くあるので、バージョンアップしていきます。 前回から2週間ほどでのバージョンアップ。活発で嬉しいです。 最初に Dify のバージョンアップ中に、(ブログが見づらくなるので省略)...",
"text": "2024/06/28 に v0.6.11 がリリースされていました。Difyは本当に素晴らしいアプリですが、不具合もまだまだ多くあるので、バージョンアップしていきます。\n前回から2週間ほどでのバージョンアップ。活発で嬉しいです。\n最初に\nDify のバージョンアップ中に、、(ブログが見づらくなるので省略)...",
"language": null,
"image": "https://microai.jp/images/ogimage.webp",
"pagetype": null,
"filedate": "2024-07-04",
"source": "https://microai.jp/blog/70b4bf89-fe4b-451f-ac81-2d757fca8b6a",
"source_hostname": "Microai",
"excerpt": null,
"categories": "",
"tags": "microAI,AI,API"
}

使用言語、ライブラリ

fastAPI (python) でできています。
Swagger (openAPI) でのドキュメントが生成されるため、Dify のカスタムツールにそのままインポートすることができます。

main.py の
    servers=[
{
"url": "http://localhost:8002",
"description": "Prod Server"
}
],
上記URLの箇所はご自身の環境に合わせて書き換えてください。

robots.txt

個人的な開発用途が、自分が開発に関わっているサイトの本文抽出目的であったため、robots.txt を読み込む機能を実装していません。
本文抽出する際は、相手に迷惑をかけないようにお願いいたします。
Difyのバージョンが v0.6.11からv0.6.12 に上がったので、Kubernetes で運用しているDifyのバージョンアップを行ってみる
Difyで処理によってナレッジ(dataset)を切り替えたいけど、分岐が大量になってしまう・・・を無理やり解決するツールを作った話