LoginSignup
2
1

More than 1 year has passed since last update.

ChatGPTにCypherクエリの作成を助けてもらった

Last updated at Posted at 2023-02-19

紹介したいこと

  • 最近、個人的にグラフデータベースに関心を持ち、Neo4jでデータの可視化を試みました。しかし、初心者なので、グラフデータベースのクエリ(Cypher)を入力するのは非常に時間がかかる上に、ミスもしやすいため、効率的に入力する方法を探していました。

  • そこで、自然言語処理の分野で注目されているChatGPTを使って、文章からCypherクエリを生成することを試してみました。ChatGPTを活用事例をみて、Neo4jでのグラフDBのノード、関係性の作成、検索にも活かせないかと思ったのです。

Cypherとは

Cypherは、グラフデータベースにおける検索、追加、削除、更新などの操作を行うためのクエリ言語です。Cypherは、テーブル構造のデータベースではなく、ノードや関係性からなるグラフデータベースに対して最適化されたクエリ言語です。Cypherは直感的で読みやすく、グラフデータベースの特徴を生かしたパターンマッチング機能や、グラフ分析に必要な統計処理などをサポートしており、グラフデータベースの利用を容易にします。

変換したい文章

Cypherに変換する文章の例をChatGPTに考えてもらった

Johnはニューヨークに住んでいて、プログラマーです。彼はラーメンが好きで、よく近所のラーメン店に行きます。

image.png

文章からCypherを作成してもらった結果

CREATE (john:Person {name: 'John'})
CREATE (newyork:City {name: 'New York'})
CREATE (programmer:Job {name: 'Programmer'})
CREATE (ramen:Food {name: 'Ramen'})
CREATE (ramen_shop:Restaurant {name: 'Nearby Ramen Shop'})

CREATE (john)-[:LIVES_IN]->(newyork)
CREATE (john)-[:WORKS_AS]->(programmer)
CREATE (john)-[:LIKES]->(ramen)
CREATE (john)-[:GOES_TO]->(ramen_shop)

image.png

動作確認

アカウントを作成すれば、無料で一時的なNeo4jの環境を構築できるAuraDBでDBを利用して動作確認した。
"AuraDBとは"

作成したDBにログインしてQueryの画面で作成したもらったクエリを実行してみた。
image.png

Bloomの画面関係性を確認したところ、以下のように正しく表現できていた。
image.png

まとめ

  • 簡単な文章であれば、ChatGPTは文章からCypherに変換してくれた。自分でGoogleで検索しながら作業するよりもとても効率的であった。自力でやるより、感覚だが、2倍以上のスピードが上がってると思う。あまり知らないものに対して、サポートしてもらって簡単な実装するにはChatGPTは強力だ!
  • 変換だけでなく、わからなくなったら、ChatGPTに聞いて解決できることも良かった。
  • ときどき、ChatGPTで間違ったクエリが提示されるが、間違ってる部分の修正をお願いしるようなやり取りすれば、訂正したクエリがかえってくるやりとりもできた。

所感

  • OpenAIのAPIにも同様のリクエストはできるので、文章 to Cypher 変換はできそう。文章から、その状況をグラフデータベースで可視化したい場合には活用できそう。だいたいの状況を知りたいケースなど。ただし、OpenAIに送るデータにビジネス用途の秘密情報が含まれる場合などは、より検討が必要である。今回はあくまでも、公開されてる、秘密でない情報での変換を前提としている。
  • データオーケストレーションツール、ETLなどから、データの変換を検知して、AIのAPIを活用して、グラフDBに蓄積していくなどのシステム構成も考えられると思った。時間があれば試してみたい。

参考

  • Neo4jの公式のtwitterでもすでに話題になってました・・・。やっぱ活用したくなりますよね!

  • Azure OpenAI Service
    AzureでRest APIから使用できるサービスがある。Micorosoftが提供する基盤で使用できるのもいい。モデルをカスタマイズモデルするなど試してみたい。一般公開してほしい。(2023年2月時点)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1