DataStax Langflow Update - API エンドポイントと Unstructured 統合

# DataStax Langflow とは

ドラッグアンドドロップで、生成 AI を利用したチャットボットや RAG を構築できる [Langflow](https://www.langflow.org/) をクラウドでホストし、インフラを気にすることなく利用できるのが [DataStax Langflow](https://www.datastax.com/products/langflow) です。9/5 時点では Preview なので本番環境での利用は推奨されませんが無料で試すことができます。興味がある方は [DataStax Langflow](https://www.datastax.com/products/langflow) の [GET STARTED WITH CLOUD](https://astra.datastax.com/signup?type=langflow&_gl=1*y1hq4b*_gcl_au*MTE5NTYwMTUxMC4xNzIyMjY2NTM0LjEyMzk2NTk4NTkuMTcyNTUwNzA3OS4xNzI1NTA3MDg0) からアカウント登録して利用できます。

DataStax Langflow を使うメリットとしては以下のようなものがあります。

####  LangChain を簡単に使える
LangChain と GenAI に関する様々なツールをドラッグ＆ドロップで操作でき、あらかじめ準備されたテンプレートから構築を始めることができます。

#### セットアップ不要

インストールや複雑な設定は不要で、開発者はセットアップの手間をかけずにすぐにアプリの構築に取りかかることができます。様々なライブラリのバージョン管理などに悩まされることはないです。

#### セキュアな環境
安全で信頼性の高いクラウドプラットフォームを活用することができ、アクセスを管理することができます。

#### Astra DB へのシームレスなアクセス

ベクトルデータベースである Astra DB を Langflow 内で簡単に利用することができます。

#### 柔軟性と選択肢

[ベクトルデータベース](https://www.datastax.com/guides/what-is-a-vector-database)、[Embeddings モデル](https://www.datastax.com/guides/what-is-a-vector-embedding)、[LLM](https://www.datastax.com/guides/what-is-a-large-language-model) の幅広い選択肢を利用することができます。


# DataStax Langflow Update 

2024年9月4日にニューヨークで行われた DataStax の [RAG++ というイベント](https://www.datastax.com/jp/events/rag-plus-plus-nyc-sept-2024)で以下のアップデートが発表されました。それぞれについて紹介していきます。

- DataStax Langflow API
Langflow で作成した生成 AI のアプリケーションを API 化して、どこからでもアクセスできる URL を発行します。API にはトークンが設定されるので、URLとトークンを知っている人しかアクセスできません。

- Unstructured との統合
RAG を構築する際に、元となるデータはすぐにベクトル化できるようなテキストファイルとは限らず、HTML, PDF, CSV, PNG, PPTX のような複雑な構造をしている可能性があります。これらのファイルからの情報抽出を簡単かつ適切に行う Unstructured というライブラリを使えるようになりました。

## DataStax Langflow API

DataStax のアカウント登録が終わってログインすると Astra DB の画面に移動します。メインの画面に「Build with Langflow」という紫のボタンが現れるので、これをクリックして Langflow の画面に移動します。既存のプロジェクトの中から一つを選択するか、まだプロジェクトがない場合は新しいプロジェクトを作成しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/279199/33e59cf1-9b03-1d79-37df-6941e67d12f7.png)

Langflow のプロジェクトを作成すると、以下のようなアプリケーション作成画面が現れます。作成の例は、前回の Qiita の記事「[Astra DB と Langflow で RAG を構築](https://qiita.com/harusamet/items/0fb314014bbc7f1bd00e)」を見てください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/279199/272825b4-891e-645d-f499-508ef21bffbc.png)

アプリケーションができたら画面右下の Playground からチャットのインタフェースを試すことができます。そして今回のアップデートである DataStax Langflow API を試すには、その横の **<<//> API** をクリックすると以下のような画面が現れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/279199/c56449a8-5ead-f579-5e8c-7c345fcb0a2d.png)

API を利用するにはトークンが必要になるので、Generate Token からトークンを生成して利用します。その下には cURL や Python などを使った API の利用方法が表示されています。

それでは cURL を使って実際に API を利用してみましょう。<YOUR_APPLICATION_TOKEN> を生成したトークンに置き換えてください。また、"input_value" が "message" に設定されているので、これをフローに送信したいメッセージに更新してコマンドを実行します。JSON のフォーマットに変換するために、[jq JSON processor](https://jqlang.github.io/jq/)を使用すると便利かもしれません。


![c649545f0c8a1f274974b93e00431f17394708a9-600x371.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/279199/156f9582-2734-1b03-42e8-654b12f984a5.gif)


cURL でリクエストを送ると RAG の結果が返ってきました!

## Unstructured との統合

Unstructured を利用したデータの読み込み自体は、OSS の [Langflow v.1.0.16](https://github.com/langflow-ai/langflow/releases/tag/v1.0.16) から利用可能で、同様の機能が DataStax Langflow でも可能です。以下のように Loaders に Unstructured のコンポーネントがあるのでドラッグアンドドロップで追加できます。Unstructured のコンポーネントの特徴としては以下があります。

- 幅広いファイルサポート
PDF、画像、動画、Word文書、PowerPointプレゼンテーションなど、さまざまなファイルタイプをアップロードできます。

- クラウドまたはローカル処理の選択
DataStax ローカルの Unstructured を使用することも、Unstructured APIキーを使用して処理することも可能です。

- シームレスな統合
処理されたJSON出力をAstra DBに簡単に保存し、GenAIアプリケーションで使用できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/279199/6768c8bc-4cf0-4236-7f91-3c6ec48645e9.png)

シームレスな統合の部分に関しては、Langflow を使わなくても、Astra DB に対して直接 PDF をアップロードしてベクトル化し、ベクトルデータを登録することもできます。これは Astra DB のポータル画面から数回のクリックでアップロード画面を開いて実施することができます。100 PDF までは同時にインポートできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/279199/40e313d4-75c9-79bb-017d-65d4d6f478e5.png)


## まとめ

DataStax Langflow API と Unstructured との統合についての新機能を紹介しました。
DataStax Langflow API は、Langflowで作成した生成AIアプリケーションをAPI化し、どこからでもアクセス可能なURLを発行します。APIにはトークンが設定され、URLとトークンを知っている人だけがアクセスできます。また、Unstructuredライブラリを利用することで、HTML、PDF、CSV、PNG、PPTXなどの複雑なファイルから情報を抽出し、RAGを構築できます。