ブックマーク / zenn.dev (3,227)

  • ChatGPTのAPIを利用してGitのブランチ名・コミットメッセージを自動生成するbentoを作りました

    使い方は柔軟ですが、自分が使っている方法を紹介します。 まず環境変数OPENAI_API_KEYにChatGPTAPIのtokenをセットします。 ~/.gitconfigに以下の設定を足します。 [alias] sb = !git diff -w | bento -branch -model "gpt-4o" sc = !git diff -w --staged | bento -commit -model "gpt-4o" git sbでブランチ名推薦、git scでコミットメッセージ推薦をしてくれます。-modelでモデルを指定できますが、精度や速度の問題でgpt-4oがおすすめです。 色々使った結果、実際にGitのフローで使う場合、以下のことを考える必要があります。 ブランチ名を作りたい時はaddする前 新規ファイルは特に自動生成のファイルだとかなり大きくなることがあり、そういう

    ChatGPTのAPIを利用してGitのブランチ名・コミットメッセージを自動生成するbentoを作りました
  • ELYZA-tasks-100を人間が解くと何点取れるのか?

    と言ってもこの点数が低いのか高いのか分かりませんので、Claude 3.5 Sonnetの点数も見ていきましょう。 Claude 3.5 Sonnetの点数 現時点で最強と名高いClaude 3.5 SonnetにもELYZA-tasks-100を解いてもらいます。 単純に問題文だけを投げる形で、temperatureは0.8にしました。 import json import anthropic from datasets import load_dataset client = anthropic.Anthropic( api_key="APIキー", ) dataset = load_dataset("elyza/ELYZA-tasks-100") test_set = dataset["test"] results = {} for i, example in enumerate(t

    ELYZA-tasks-100を人間が解くと何点取れるのか?
  • Gemini 1.5 のロングコンテキストを活かして AI を育てるアプローチ 〜 RAG の限界を軽やかに突破するために

    Gemini 1.5 のロングコンテキストを活かして AI を育てるアプローチ 〜 RAG の限界を軽やかに突破するために はじめに この記事では、Gemini 1.5 のロングコンテキストを活かして LLM を用いた AI システムを段階的に育てるアプローチを説明します。後半では、RAG システムの導入ハードルを下げるためにこのアプローチを適用するイメージをサンプルコードとあわせて紹介します。 ここではまず、前提知識となるグラウンディングや RAG の仕組みを説明します。 グラウンディングと RAG の違いについて LLM の業務活用に向けて勉強していると、かならず耳にするのが「グラウンディング」や「RAG」というキーワードです。グラウンディングは、LLM の基盤モデル自身が保有していない(学習していない)追加の参考情報をプロンプトに埋め込む事で、参考情報に基づいた回答を生成させるテクニ

    Gemini 1.5 のロングコンテキストを活かして AI を育てるアプローチ 〜 RAG の限界を軽やかに突破するために
  • Next.jsを使い続けたい好きなトコロ

    ムーザルちゃんねるのzaruです。今回はムーさんと、Next.jsを使い続けたい好きなトコロについて話しました。Next.jsが合うか合わないかは、正直プロジェクトとチーム体制や方針に大きく左右されます。僕たちが好きなトコロにピンときた方にはきっと合うと思いますのでぜひさわってみてください。 フロントとバックの境界線がなくなる フロントエンドとバックエンドの境界線がなくなるって、何、なくなるわけないだろ!と思うかもしれません。確かに実際には境界線がなくなるわけではなく隠蔽されているのが実態ではありますが、それによる開発体験の向上がとても好きです。 バックエンドの処理を簡単に実行できる Next.js(実態はReact)のServer Componentを使えば、コンポーネント内でSQLの実行などがそのままできます(以下のコードは例のために直接SQLを書いているので「うぇ?」と思うかもしれま

    Next.jsを使い続けたい好きなトコロ
  • Astro+WP APIでPageSpeedInsightsで簡単に100点取る

    前書き WordPressで稼働しているリニューアル案件で、Astroを使って実装を行った。 ライブラリにサイトが完全に依存するデメリットもあるものの、 Astroを使用した理由としては、コンポーネント指向による保守性拡張性の観点からと、サイトの最適化の観点から採用した。 結果普通のレンタルサーバーでPageSpeedInsightsでほぼ100点満点。 SPの点数 PCの点数 使用感と感想 正直これまでのタスクランナーやモジュールバンドラーなどを使ったHTML開発は若干レガシー化している感があった。 そんな中、まさに現時点でのWeb開発ベストプラクティスを詰め込み、ほぼ何も考えずに最適化されたサイトを実装できる非常にすぐれたライブラリだと感じる。 また、これまでPageSpeedInsigthsの点数を上げようと思ったら、構築後、PageSpeedInsightsの助言に一つ一つ従いなが

    Astro+WP APIでPageSpeedInsightsで簡単に100点取る
  • クリーンアーキテクチャをパン工場で説明する【Go】

    はじめに 記事は技術書典16(2024)で一部執筆させていただいた「CA Tech Lounge note #2」のクリーンアーキテクチャとパン工場を元に、一部抜粋&変更したものです。 記事の対象読者 記事では、クリーンアーキテクチャを全くわかっていない筆者が、一度個人開発したものをクリーンアーキテクチャにリファクタリングしていく過程で学んだことをまとめていきます。そのため、以下のような読者を想定しています。 クリーンアーキテクチャを聞いたことがあるけどわからない人 コードは書くけれどアーキテクチャを意識したことはない人 アーキテクチャを意識して開発したい人 クリーンアーキテクチャを一度学んでもピンと来なかった人 Goが好きな人! リファクタリング前の筆者の状況 バックエンド歴は半年弱ほどで、実務経験としてはPythonで簡単なAPIを実装するアルバイトのみになります。アーキテクチャ

    クリーンアーキテクチャをパン工場で説明する【Go】
  • Ubie における、小さく泥臭くはじめる開発生産性改善

    記事では Ubie における最近の「開発生産性」というテーマで向き合っている事柄と実際のアクションについて紹介します。まだまだ発展途上ではあるのですが、何かの参考になれば嬉しいです。 背景 「開発生産性」とは一見シンプルな概念に見えますが、世のテック企業、取り組んでいる人々のアクティビティを見ていると複雑で深いものにも感じます。例えば SpeakerDeck で「開発生産性」と検索することで多様な情報発信を見ることができます。有名な書籍として「 Lean と DevOps の科学」も、初学者が内容を頭に叩き込むのも難しいのではないでしょうか。 これらの先行者の知見は素晴らしいものの、具体的に我々の現場の開発組織、事業状況などなど現実に近しい環境と密接に接続して、すぐに手応えが感じられる成果が得られるかというとそうでもないとも思います。 Ubie でも過去に開発生産性課題を感じて様々なアプ

    Ubie における、小さく泥臭くはじめる開発生産性改善
  • Rye × uvでPython環境と機械学習環境を整える

    チューリングのE2E自動運転チームの岩政(@colum2131)です。 最近、チーム内でPythonを使った開発はRyeとuvを使うことが多くなり、特に機械学習環境もRyeとuvで問題なく開発できるようになりました。社内でのオンボーディング資料としてRyeとuvの操作を整備しようと思い、このテックブログで紹介します。 1. Rye × uvとは? RyeはPythonの包括的なプロジェクトおよびパッケージ管理のツールです。これまでもPoetryなど管理ツールはありましたが、pyenvなどPythonのバージョン管理ツールが必要でした。Ryeは、Pythonのバージョン管理からパッケージ管理を行えて、Poetry同様にpyproject.tomlの設定ファイルを使用したプロジェクト管理も可能です。 uvは非常に高速なパッケージインストーラおよびリゾルバーで、一般的なpipおよびpip-too

    Rye × uvでPython環境と機械学習環境を整える
  • テキスト抽出不要のRAGを実現するColPali

    導入 こんにちは、株式会社ナレッジセンスの須藤英寿です。普段はエンジニアとして、LLMを使用したチャットのサービスを提供しており、とりわけRAGシステムの改善は日々の課題になっています。 記事では、画像の情報をそのままベクトルデータにして検索する手法、ColPaliについて解説します。 サマリー 通常、RAGでは文書データからテキストを抽出して、その文字をベクトルデータに変換します。しかしColPaliは、文書データを画像として認識してベクトル化を行います。画像として保管することでテキスト化できない情報を扱うことができます。他にもベクトルを複数に分解することで精度を改善し、テキストの抽出が必要ないことからデータ保管時のコストの大幅な低減などのメリットを享受できます。 PDFのデータを保管する際には、ColPaliモデルに正規化したPDF画像を入力として渡し1024個の128次元ベクトルを

    テキスト抽出不要のRAGを実現するColPali
  • 自動テストの実行時間を大幅短縮!分析と最適化の実践法

    Thinkings 株式会社では、sonar ATS の開発で自動テストを導入しています。過去に CI の実行時間を大幅に削減したことで全体の実行時間は短くなりました。自動テストの速度改善は手が回っていなかったので、CI 実行時間のボトルネックになっていました。今回は自動テストの実行時間を短縮するためにどうやって分析を行ってテストコードを改善したかについて説明します。 開発環境 開発環境は次の通りです。今回はバックエンドの改善内容について説明します。 Visual Studio 2022 .NET Framework 4.6.2 C# xUnit.net 実行時間の分析方法について まずは、自動テストのボトルネックを分析する方法について説明します。前回もお話しましたが、弊社では CI/CD ツールに Jenkins を使用しています。自動テストは1日に数回実行しており、その実行結果をアップ

    自動テストの実行時間を大幅短縮!分析と最適化の実践法
  • "use server"; でexportした関数が意図せず?公開される

    Next.js AppRouterで利用できるReactのServer Actions機能。クライアントからサーバ上の処理を関数で呼び出せるので非常に便利ですが、 "use server"; のことをあまり知らず、誤った使い方をすると意図せず公開したくない関数が外部に公開されてしまうケースがあるので注意です(ほとんどこんなケースはないと思いますが、なくはないので注意喚起です)。 Server Actionsの例 Server Actions用の関数として宣言するためには "use server"; が必要です。それ以外は至って普通の非同期関数で大丈夫です。 "use server"; export async function someAction() { return { message: "Server Action", }; } 次に定義したServer Actionsの関数を呼び出

    "use server"; でexportした関数が意図せず?公開される
  • Vitest Browser Modeがアツい

    Background これまでVitestでコンポーネントのテストを行う時は、jsdom や happy-dom を使ってブラウザ環境を偽装していました。しかし、偽のブラウザ環境を使うことは多くの問題があり、また開発者はテスト以外でどこにも存在しない環境を作り上げるという不毛な作業が必要でした。 この問題を解決するために、Playwright や Cypress などのテストフレームワークは Component Test をサポートしています。しかし、UnitテストでPlaywrightやCypressを使うのは少々Fatであり、Reactのhooksなどのテストをすることができません。 Vitest Browser Modeを使用することで、Vitest上でComponent Testが可能となり、これらの問題を解決できます。 Installation Browser ModeのSetu

    Vitest Browser Modeがアツい
  • Vercel に Go サーバーを無料でデプロイできるんです!

    はじめに 個人開発で使っていたのですが Gopher の集いにて VercelGo の開発ができることを話したら意外と知られていなかったのでご紹介します。 (貧乏エンジニアリングだと言って似たような記事を以前お見かけしていた場合、それはきっと私の残像が書いたものです。) Vercel とは いわゆる PaaS ( Platform as a Service ) です。 Vercel 社が Next.js を開発していることもあり、静的サイトや SPA ホスティングを簡単にできるサービスの印象が強いですが、 Functions や Postgres などを備えているのでサーバーの構築もできちゃいます。 Next.js のイメージから TypeScript と思われますが Go もデプロイできます。 準備 & version Vercel アカウントを作成します。 無料で使いたいので H

    Vercel に Go サーバーを無料でデプロイできるんです!
  • 自分が管理する全 OSS の Issue や Pull Request を 1 つの GitHub Project に集約

    2024-07-24 追記: 記事の続きで、開発組織でのソフトウェア開発の Issue や PR を自動で適切な GitHub Project に割り当てていく方法についても書きました。 https://zenn.dev/shunsuke_suzuki/articles/manage-enterprise-issue-pr-by-project タイトルの通り、自分が管理する全 OSS の Issue や Pull Request (以下 PR) を 1 つの GitHub Project に集約した話を紹介します。 自分は様々な OSS をメンテしており、様々なリポジトリで作られる GitHub Issues や PR を日々ハンドリングする必要があります。 しかしこれだけリポジトリの数が増えると一つ一つリポジトリを巡回してハンドリングしていくのは困難です。 ユーザーによって issu

    自分が管理する全 OSS の Issue や Pull Request を 1 つの GitHub Project に集約
  • Cloudflareスタックをモリモリ使ってアバター画像生成サービスを作った話

    Cloudflare Workersを中心とした、Cloudflareの開発者向け製品群(いわゆるCloudflareスタック)は、今やそれだけでちょっとしたサービスを生み出すことが不可能ではなくなってきています。 今回、システム構成をCloudflareスタックにほぼ全振りした新サービスをお仕事で作ったので、工夫した点を紹介します。 なお、記事で紹介するサービスは7月4日に正式リリースしたばかりで、格的なトラフィックをほとんど経験していない状態でこの記事を書き始めています。2ヶ月ほど運用した後での生の声は、8月25日に新潟で行われる、Cloudflare Meetup Niigataで講演枠をいただいてお話しする予定ですので、気が向いた方は新潟まで足をお運びいただければと思います。 他にも機会があれば登壇したいので、Cloudflare系のイベントにお誘いいただけますと幸いです! キ

    Cloudflareスタックをモリモリ使ってアバター画像生成サービスを作った話
  • LLMに面倒なことをやらせるソフト「Code Cooker」の紹介

    LLMに面倒なことをやらせたい 面倒なことはChatGPTにやらせようというの著者のからあげです。 書籍では、様々な面倒なことをChatGPTにやらせています。ChatGPT単体(コアの部分)は、基的にテキスト(言葉)を生成することしかできないので、どうやって面倒なことをやらせているかというと、ChatGPTの生成したテキストで、拡張機能を操作することで、実現しています。イメージ的には以下のように、ChatGPTの手足のように拡張機能を使う感じです。拡張機能としては、色々ありますがChatGPTが生成したコードを実行できるAdvanced Data Analysis(Code Interpreter)が重要かつ代表的な機能となります。 面倒なことはChatGPTにやらせよう(講談社)より引用 この機能はChatGPT独自のものだったのですが、最近はGeminiのGoogle AI St

    LLMに面倒なことをやらせるソフト「Code Cooker」の紹介
  • サイバーセキュリティチーム立ち上げにあたり考えたこと

    前回のブログ冒頭で記載した通り、弊社では今年からサイバーセキュリティチームを立ち上げました。今回はチーム立ち上げにあたって考えたことを共有します。 目指す姿〈Vision〉 目についた課題に対処するだけでは中長期的な成長は望めません。チームとして目指すべき到達点、Visionが抽象的なレベルでもあると、活動の軸になりますし、チームとして自分たちが前進していることを実感できると思います。 では、どういったVisionがよいか。当チームでは、『The Sliding Scale of Cyber Security』[1]を採用しました。このモデルではサイバーセキュリティの防御態勢を大きく5段階で表現しており、チームとして目指すべき姿を認識するうえで良いモデルだなと感じています。当社では少しだけ表現を変え[2]、下の絵のようにしました。 このうち、Offenceは事業会社としてはNGですので、そ

    サイバーセキュリティチーム立ち上げにあたり考えたこと
  • スタートアップなのにフロントエンドのテストカバレッジが90%を超えている話 | Resilire Tech Blog

    はじめに サプライチェーンリスク管理クラウドサービスResilireでエンジニアをしている奥村@showkittie です。 Resilireでは、1歳の子の育児に悪戦苦闘しながら、フロントエンド、サーバサイドを問わずプロダクトエンジニアをやっています。 ResilireはシリーズAを迎えたばかりのアーリースタートアップでありながら、フロントエンドのテストカバレッジが90%を超えており、必要なケースについてはほぼテストが網羅されています。 私は今年の4月に入社したばかりですが、すでにテストカバレッジの高さに助けられ、不具合の混入をせずに済んだことが何度もあります。 今日は、Resilireのフロントエンドのテスト戦略とカバレッジの高さの理由についてお伝えしたいと思います。 スタートアップとテスト 冒頭にもお伝えした通りResilireはアーリースタートアップです。エンジニアリングに求められ

    スタートアップなのにフロントエンドのテストカバレッジが90%を超えている話 | Resilire Tech Blog
  • TypeSpec、Orval、Storybook を使ってフロントエンドのモック生成を自動化する

    はじめに フロントエンド開発において、効率的かつ一貫性のあるモック生成は非常に重要です。記事では TypeSpec、Orval、Storybook の 3 つのツールを使用して自動生成でモックを実現する方法を紹介します。 TypeSpec は、大規模な API を提供するために Microsoft が開発し、使用している新しい API 記述言語です。 Orval は、OpenAPI 仕様から TypeScript のクライアントコードを生成するツールです。これにより、最新の API 仕様に基づいたクライアントコードを常に保持し、API との通信がスムーズに行えるようになります。 Storybook は、コンポーネントを独立して開発・テストするためのインタラクティブなツールです。コンポーネントの見た目や動作を個別に確認できるため、UI の一貫性を保ちながら効率的に開発を進めることができます

    TypeSpec、Orval、Storybook を使ってフロントエンドのモック生成を自動化する
  • AWS RDS/Auroraでモニタリング&チューニングを始めるための資料11選

    これはなに ども、レバテック開発部のもりたです。 もりたはデータベースが好きなんですが、最近は特にAWS RDS/Auroraでのモニタリングとパフォーマンスチューニングについて興味があります。ただ、これらのうちモニタリングは扱っている話題が若干ローレベルであまりピンとこず、またチューニングもどこから手をつければいいのかわかりませんでした。 この記事では、もりたがモニタリング&チューニングを学習する上で役に立った書籍やWeb上の資料をロードマップ形式で紹介していきます。対象読者はDBのモニタリングとチューニングをやりたいけどどこから手をつければいいか分かんないなとなっている人、ゴールはそんな人がモニタリング&チューニングの第一歩を踏み出せることです。 スコープ 今回扱うもの、扱わないものは以下の通りです。 扱う モニタリング&チューニングの概要 モニタリングの前提知識 チューニングの前提知

    AWS RDS/Auroraでモニタリング&チューニングを始めるための資料11選