1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Databricks Appsを用いたコード分析アプリ

Posted at

こちらの記事のアプリを動かしてみます。

リポジトリはこちら。

ボリュームを作っておきます。
Screenshot 2025-09-29 at 11.10.07.png

アプリを作成しますが、ここでリソースとしてモデルサービングエンドポイントを追加します。gptモデルだとうまく動かなかったのでdatabricks-llama-4-maverickを指定します。あと、リソースキーはapp.yamlに合わせてSERVING_ENDPOINTにしておきます。
Screenshot 2025-09-29 at 11.30.07.png

アプリが起動したら、上のリポジトリをgitフォルダーとして取り込んでおきます。app.yamlをボリュームのパスに合わせて変更します。

app.yaml
ecommand: [
  "python", 
  "app.py"
]

env:
  - name: "SERVING_ENDPOINT"
    valueFrom: "SERVING_ENDPOINT"
  - name: "default_catalog"
    value: "takaakiyayoi_catalog"
  - name: "default_schema"
    value: "apps"
  - name: "default_volume"
    value: "codebase"
  - name: "default_file"
    value: "btree.c"
  - name: "DATABRICKS_HOST"
    value: "https://xxxxx.cloud.databricks.com/"

アプリのサービスプリンシパルがボリュームにアクセスできるように権限を付与します。
Screenshot 2025-09-29 at 11.16.46.png

gitフォルダのコードをアプリにデプロイします。
Screenshot 2025-09-29 at 11.17.17.png

問題なければアプリが動作するようになります。
Screenshot 2025-09-29 at 11.23.09.png

Download SQLite Example Filesをクリックすると、ボリュームにソースコードが格納されます。
Screenshot 2025-09-29 at 11.23.36.png

ソースコードに含まれる変数を選択するとグラフが表示されます。
Screenshot 2025-09-29 at 11.27.17.png

チャットbotに質問もできますが、英語で返ってきています。
Screenshot 2025-09-29 at 11.27.39.png

chat_interface.pyのプロンプトを調整してあげると日本語で回答するようになりました。87行付近で最初の一行[Response in Japanese]を追加しただけです。

                                   code_context += (
                                        f"[Response in Japanese]\n"
                                        f"Context about the code being discussed:\n"
                                        f"- File: {file_path}\n"
                                        f"- Variable: {symbol_name}\n"
                                        f"- Type: {var_info['type']}\n"
                                        f"- Scope: {var_info['function'] or 'global'}\n"
                                        f"- Is Pointer: {var_info['is_pointer']}\n"
                                        f"\nUpstream Dependencies:\n"
                                        + ('\n'.join(upstream_details) if upstream_details else "  - none")
                                        + f"\n\nDownstream Dependencies:\n"
                                        + ('\n'.join(downstream_details) if downstream_details else "  - none")
                                        + "\n\n---\nUser Question:\n"
                                    )

Screenshot 2025-09-29 at 11.41.30.png
Screenshot 2025-09-29 at 11.42.01.png

生成AIを活用したアプリを気軽に作れるのは嬉しい限りです。

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?