Upgrade to Pro — share decks privately, control downloads, hide ads and more …

More Context, Better Code. 既存コードやOAS等をコンテキストとして...

uzulla
October 16, 2024

More Context, Better Code. 既存コードやOAS等をコンテキストとしてLLMに与える事で、よりよいコード生成を行う話

at: 【リンケージ x セレス】生成AI利用の現実 ~開発者は本当にAIと向き合えているのか~
date: 2024/10/17
author: uzulla

uzulla

October 16, 2024
Tweet

More Decks by uzulla

Other Decks in Technology

Transcript

  1. More Context, Better Code. 既存 OAS等 LLM 与 事 、

    ⽣成 ⾏ 話 ̶ at: ̶ 【リンケージ x セレス】⽣成AI利⽤の現実 ~開発者は本当にAIと向き合えているのか~ ̶ date: ̶ 2024/9/14 ̶ author: ̶ uzulla (from Linkage)
  2. ⾃⼰紹介 ̶ id: uzulla (うずら) ̶ Linkageには業務委託でJoinしているフ リーのウェブ系ソフトウェアエンジニア (他の⾊々な現場にもおります) ̶

    主戦場はバックエンド系ですが、 必要なら何でもやります系です。 ̶ ⾃称で、得意なものはレガシーコードで す (約30年選⼿なので、俺がレガシーだ!) ̶ ⼀番書く⾔語はPHPですが、TypeScript やGoやPython等も必要に応じて書きます
  3. (LLM )AI活⽤ !? ̶ 挙⼿で教えてもらえるとうれしいです! ̶ ChatGPT、Claude、Copilot、Gemini等のチャット ̶ GH Copilot,

    Jetbrains AI, Cody, Codium等のAddon等 ̶ CursorやGitHub WorkspacesやインテグなどのAIネイティブエディタ等 ̶ CIなどに組み込んだ⾃動コードレビューアクションなど ̶ OpenAI Api等をコールする⾃作のスクリプトなど ̶ 私は⼤体使ってみている
  4. 初期 ⽤AI環境 触 失望 ̶ 2021年に鳴り物⼊りした(GitHub) Copilot 「コードはAIが書く時代!!!エンジニア失業!!!」 ̶ 初期のCopilotはエディタ内でAIが補完のみ

    ̶ 開いているタブだけを参照する ̶ 体感で「微妙」という感じ否めない ̶ 「有料になっちゃったしなあ…」 ̶ しかし昨今は進化をしております! ̶ 競合を参考にして(?)進化 ̶ インラインエディット対応、コンテキスト対応 ̶ Web UIでの動作対応 ̶ 中⾝もGPT4oになったり、⾼速化したり
  5. OAS ⽤意         ̶ プロンプトサンプル ̶ ଂॻ؅ཧ༻ͷCRUDͷOASΛYamlܗࣜͰੜ੒͍ͯͩ͘͠͞ɻ ΤϯςΟςΟͱ ͯ͠͸ɺBook ΤϯςΟςΟ͕͋Γ·͢ɻ

    ̶ 本当はもっと⻑くかいてもよいが、プロンプトエンジニアリングの説明は 今回しないので省略
  6. ੜ੒͞ΕͨYaml͔Βൈਮ components: ུ Book: type: object properties: id: type: integer

    title: type: string author: type: string publishYear: type: integer genre: type: string createdAt: type: string format: date-time
  7. 実⾏ ( phpunit ) $ vendor/bin/phpunit --bootstrap vendor/autoload.php ./BookRepositoryTest.php PHPUnit

    11.4.1 by Sebastian Bergmann and contributors. Runtime: PHP 8.3.9 . 1 / 1 (100%) Time: 00:00.006, Memory: 6.00 MB OK (1 test, 6 assertions) ウゴイタアアアア
  8. 쎕썿쎘 ̶ AIは賢いが、コンテキストがあれば、望む結果が得られやすい ̶ 「バグを直して!」みたいなのは難しい、 「このファイルで、このテストが通るように直して!」等がよい ̶ 「テンプレ」をつくって、これを真似て作って、というとよい ̶ (そのためには⾃分の知識は重要、選ぶのはあなた)

    ̶ inline機能で⼤分サクサクと作業ができるようになって便利 ̶ GitHub Copilot以外もツールはある ̶ ⽇進⽉歩で改善されるので、年間で契約しない⽅がよい(と思う) ̶ 私は普段Cody+PhpStormをつかっている ̶ (Copilotは「質問がプログラミングに制限されている」ので不便な事 も)