こちらの記事のアプリを動かしてみます。
リポジトリはこちら。
アプリを作成しますが、ここでリソースとしてモデルサービングエンドポイントを追加します。gptモデルだとうまく動かなかったのでdatabricks-llama-4-maverick
を指定します。あと、リソースキーはapp.yaml
に合わせてSERVING_ENDPOINT
にしておきます。
アプリが起動したら、上のリポジトリを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/"
アプリのサービスプリンシパルがボリュームにアクセスできるように権限を付与します。
Download SQLite Example Filesをクリックすると、ボリュームにソースコードが格納されます。
ソースコードに含まれる変数を選択するとグラフが表示されます。
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"
)
生成AIを活用したアプリを気軽に作れるのは嬉しい限りです。