この進行中の Docker Labs GenAI シリーズ AI開発者ツールのエキサイティングな空間を探ります。 Dockerでは、誇大広告なしでオープンに探求できる広大な範囲があると信じています。 私たちは、探索を共有し、開発者コミュニティとリアルタイムで協力します。 開発者はGitHub Copilotのようなオートコンプリートツールを採用し、チャットを使用していますが、AIツールがソフトウェアのライフサイクル全体を通じて、より具体的なタスクやインターフェースを支援する可能性は大いにあります。 したがって、私たちの探求は広範囲に及びます。 ソフトウェアをオープンソースとしてリリースするので、私たちと一緒にプレイしたり、探索したり、ハックしたりできます。
Docker Desktop で AI ツールを実行する簡単な方法をリリースしました。Labs AI Tools for Devs Docker Desktop 拡張機能を使用すると、プロンプトを簡単に実行したいユーザーでも簡単に開始できます。
プロンプトの作成者の場合、このアプローチにより、プロンプトをより簡単に作成、実行、共有することもできます。 ここでは、その方法をご紹介します。
拡張機能を入手する
拡張機能は Docker Hub からダウンロードできます。インストールが完了したら、OpenAIキーを入力します。
プロジェクトのインポート
私たちのアプローチでは、プロンプトが必要とする情報はプロジェクトから抽出可能である必要があります。 SDLC ツールを実行するプロジェクトをここに追加します (図 1)。
プロンプトの入力
プロンプトは git ref または git URL で、ref に変換されます。 また、独自のローカル プロンプト ファイルをインポートして、カスタム プロンプトの作成をすばやく繰り返すこともできます。
サンプル プロンプト
(参照をコピー+貼り付け)
道具 | Git 参照 | リンク | 形容 |
Docker | github.com:docker/labs-ai-tools-for-devs?ref=main&path=prompts/docker | https://github.com/docker/labs-ai-tools-for-devs/tree/main/prompts/docker | 任意の Docker プロジェクトの Runbook を生成します |
ドッカーファイル | github.com:docker/labs-ai-tools-for-devs?ref=main&path=prompts/dockerfiles | https://github.com/docker/labs-ai-tools-for-devs/tree/main/prompts/dockerfiles | NPM プロジェクトのマルチステージ Dockerfile を生成する |
遅延ドッカー | github.com:docker/labs-ai-tools-for-devs?ref=main&path=prompts/lazy_docker | https://github.com/docker/labs-ai-tools-for-devs/tree/main/prompts/lazy_docker | Lazy Docker の Runbook を生成します |
ティッカー | github.com:docker/labs-ai-tools-for-devs?ref=main&path=prompts/npm | https://github.com/docker/labs-ai-tools-for-devs/tree/main/prompts/npm | NPMプロジェクトに関する役立つ情報で回答します |
ESLintの | github.com:docker/labs-ai-tools-for-devs?ref=main&path=prompts/eslint | https://github.com/docker/labs-ai-tools-for-devs/tree/main/prompts/eslint | プロジェクトでESLintを実行します |
ESLint の修正 | github.com:docker/labs-ai-tools-for-devs?ref=main&path=prompts/eslint_fix | https://github.com/docker/labs-ai-tools-for-devs/tree/main/prompts/eslint_fix | プロジェクトで ESLint を実行し、最初に見つかった違反の修正で応答します |
ピリント | github.com:docker/labs-ai-tools-for-devs?ref=main&path=prompts/pylint | https://github.com/docker/labs-ai-tools-for-devs/tree/main/prompts/pylint | プロジェクトで Pylint を実行し、最初に見つかった違反に対する修正で応答します |
独自のプロンプトの作成とテスト
プロンプトファイルの作成
プロンプト ファイルはマークダウン ファイルです。 次に例を示します。 prompt.md
# prompt system
You are an assistant who can write comedic monologs in the style of Stephen Colbert.
# prompt user
Tell me about my project.
次に、プロジェクトに関する情報を追加する必要があります。 これを行うには、口ひげテンプレートを使用します。
# prompt system
You are an assistant who can write comedic monologues in the style of Stephen Colbert.
# prompt user
Tell me about my project.
My project uses the following languages:
{{project.languages}}
My project has the following files:
{{project.files}}
プロジェクトでツールを活用する
プロンプトのレンダリングに使用できるエクストラクターと同様に、Dockerイメージの形でツールを定義します。 関数イメージは、エクストラクターと同じ仕様に従いますが、逆になります。
- Docker イメージは、プロジェクトに自動的にバインド マウントされます。
- Docker イメージのエントリ ポイントは、
–workdir
を使用してプロジェクト内で自動的に実行されます。 - 最初の引数は JSON ペイロードです。 このペイロードは、LLM が関数を呼び出そうとしたときに 生成されます 。
- name: write_files
description: Write a set of files to my project
parameters:
type: object
properties:
files:
type: array
items:
type: object
properties:
path:
type: string
description: the relative path to the file that should be written
content:
type: string
description: the content that should be written to a file
executable:
type: boolean
description: whether to make the file executable
container:
image: vonwig/function_write_files:latest
プロンプトをテストする
- ファイルを Git リポジトリに追加し、公開リモートにプッシュします。
- GitHub でファイルを参照するための URL を貼り付けます。
または、ローカルプロンプトをインポートし、コンピューター上のファイルを選択します。
3。 走る。
## ROLE assistant
Don't even get me started on the files, I mean, have you ever sat down and really looked at a list of files? This project has got more layers than that seven-layer bean dip I had at last weekend's potluck. This project isn't just files on files, its files within files, its dot something after dot something else – and before you ask: Yes, all of these are REQUIRED!
Coming down to Dockerfile. Now, I've seen some Dockerfiles but our Dockerfile, folks, it's something else. It lifts, it grinds, it effectively orchestrates our code like a veteran conductor at the symphony. We also have multiple templates because who doesn't love a good template, right?
Oh, and did I mention the walkthroughs and the resources? Let's just say this isn't a "teach a man to fish" situation. This is more of a “teach a man to create an entire fishing corporation” scenario. Now THAT'S dedication.
Finally we've got the main.js, and let's be real, is it even a project without a main.js anymore?
いつものように、新しい 公開リポジトリでお気軽にフォローしてください。 このブログ記事で説明した内容はすべて、自分のプロジェクトで試すことができます。
Docker での取り組みの詳細については、 ニュースレターを購読してください。
さらに詳しく
- Docker Newsletter を購読してください。
- Docker デスクトップの最新リリースを入手します。
- 次のものに投票してください! 公開ロードマップをご覧ください。
- 質問がありますか? Docker コミュニティがお手伝いします。
- ドッカーは初めてですか? 始めましょう。