ブックマーク / zenn.dev/erukiti (11)

  • ChatGPT/GPTでTypeScriptを逐次実行させる

    あなたはTypeScriptシミュレータです。step by stepでコードをシミュレートし、実行結果を出力してください。 ```ts const hoge = "hoge"; const hello = (...args: string[]) => `hello, ${args.join(" ")}`; hello(hoge, "world"); ``` これだけのシンプルなプロンプトで、解説を交えて逐次実行した結果を出力してくれます。もちろんTypeScriptだけではなくて他の多くの言語も処理できます。 GPTがプログラムの処理系になれるし、自然言語の操作もめちゃくちゃ上手、ということで、このテクニックは、いろいろと応用が効くはずです。もう少ししたらスクリプト言語ガシガシ入れたプロンプトが流行りそう。

    ChatGPT/GPTでTypeScriptを逐次実行させる
    toshikish
    toshikish 2023/03/20
  • ChatGPT APIを使ってキー・バリューなど扱いやすい出力を得る方法

    プロンプトエンジニアリングの記事です。 ChatGPTなどGPT-3.5系である程度安定して、加工しやすい出力を得るためのノウハウができたので書きました。土日に別の実験をしていて副産物的に得られたものです。 サンプルコードはTypeScriptですが、プログラミング言語に依存した話ではありません。簡単な正規表現による文字列置換のサンプルです。 出力を得られると何が嬉しいのか? 自然言語を自然言語で加工して、キーと値のペアを取得する、JSONを取得するなどすることができるようになるため、テキストを処理できる汎用ミドルウェアとしてLLMを使えるようになります。おそらくLLMを格的にソフトウェアに組み込んでいく上で、基礎テクニックとなるでしょう。 異なる複数のプロンプトをつなぐときにも大切なテクニックです。 基的な考え方 GPT-3.5系ではフォーマットを提示するとそのフォーマットに沿ったテ

    ChatGPT APIを使ってキー・バリューなど扱いやすい出力を得る方法
    toshikish
    toshikish 2023/03/06
  • TypeScriptでGPT-3.5を使ってChatGPTクローンを作る2 - Vite+ReactでChatGPTクローン

    ChatGPTには、ニュースにならない日がないくらいの話題性がありますが、そんなChatGPTも決して遠くの技術ではありません。完全に同じものは無理でも、それに近いクローンを作ることはさほど難しくありません。 この記事はTypeScriptGPT-3.5を使ってChatGPTクローンを作る第二弾で、今回はVite+React+TypeScript+Tailwind CSSChatGPTクローンをウェブアプリとして作ってみます。 第一弾: TypeScriptGPT-3.5を使ってChatGPTクローンを作る1 - GPTで検索エージェント 第一弾の記事では大規模言語モデル(以下LLM)であるGPTの使い方や、DenoOpenAI GPT APIGoogle Custom Searchを使って時事ネタも対応できる検索エージェントを作りました。今回の記事は、よいウェブフロントエンド

    TypeScriptでGPT-3.5を使ってChatGPTクローンを作る2 - Vite+ReactでChatGPTクローン
    toshikish
    toshikish 2023/02/14
  • TypeScriptでGPT-3.5を使ってChatGPTクローンを作る1 - GPTで検索エージェント

    OpenAI が提供している ChatGPT は非常に面白いですね。今年以後、GPTやChatGPT周りがさらに流行ると思います。 この記事は、TypeScriptChatGPTクローンを作る第一弾です。長くなりすぎるため、この記事では、GPTを使った検索エージェントを実行するまでを取り上げます。 検索エージェントは「ぼっち・ざ・ろっくの作者は?」と尋ねたら検索エンジンとGPTを使って「はまじあき」という結果を生成できる技術です。 またこの記事や、続く記事でLangChainのプロンプトをあれこれ読み解いていこうと考えています。 筆者は機械学習の初心者であるため、間違ったことが書かれている可能性があります。間違いがあった場合は、ぜひご指摘いただけると幸いです。 なお、この記事では添削にChatGPTおよびGPT-3.5を使っています[1]。 どうやってTypeScriptChatGPT

    TypeScriptでGPT-3.5を使ってChatGPTクローンを作る1 - GPTで検索エージェント
    toshikish
    toshikish 2023/01/16
  • 自走できるエンジニアとは

    ソフトウェアエンジニアリング界隈の言葉はとても曖昧な言葉に満ち溢れています。「自走」という言葉もそうです。でも、そういう曖昧な言葉の方が使い勝手が良いため、たとえば、ツイッターランドにはそういう曖昧な言葉がバズりまくったり、日々流れてきたりします。そうじゃなくても、「うちの職場のエンジニアには自走力が求められるんだよね」とか「転職するためには自走できる力が大切だ」みたいな言い方、度々聞いたり、むしろ話したりしていませんか? この記事では「自走できるエンジニア」について自分なりの考えをまとめてみたいと思います。もちろんこれはあまたある解釈の中でも、僕が解釈したものに過ぎません。そういう意味ではさらに「自走」という単語を持ち出して世に混乱を投げつけるだけかもしれません。僕のただのポジショントークかもしれません。 それでよければ、「自分は自走できているのだろうか?」「自分は、うまく部下や同僚を自

    自走できるエンジニアとは
    toshikish
    toshikish 2021/03/14
  • Reactでウェブフォームを作る2021

    Webのフォームは、いつでもベストプラクティスを悩むものの一つです。React を使うとして完全に自作でやるのか?それともフォームライブラリを使うか?フォームライブラリならどれを使うか? 今の時代 Formik を選ぶ理由はありませんが、React Hook FormReact Final Form のどちらを使うかはとても悩ましいです。 React Hook Form は利用経験者・採用実績が多い、速度が速いなど様々な利点はありますが、React 哲学に反する作りなどクセの強さが難点です。あと良くも悪くも利用シーンが豊富でドキュメントも豊富で迷子になりがちです。 React Final Form は Final FormReact wrapper です。個人的にはこちら React 的使いやすさに反すると感じてること、React Final Form として見たときにドキュメ

    Reactでウェブフォームを作る2021
    toshikish
    toshikish 2021/03/08
  • 大規模チームの中でフロントエンドを立ち上げて2ヶ月経ったのでまとめる

    とある大規模開発プロジェクトの中で WebView 用のフロントエンドシステム開発を立ち上げて2ヶ月経ちました。Android, iOS専任のエンジニアがいないため、外部協力者の指導のもと、モバイルアプリの画面を WebView で作るためです。 ある程度その営みについて見えてきたものがあるので記事にまとめることにしました。 プロジェクト参加人数は30名以上 プロジェクト自体は4ヶ月前から動いてる このプロジェクトへのフロントエンドチームの参加は1月から 現在 WebView とモバイル・バックエンドなどの結合試験をはじめている 背景 去年12月いまの会社にテックリードとして入社し、前述とは別のプロジェクトフロントエンドチーム立ち上げを行っていました。同タイミングで、いまの会社に誘ってくれた飲み仲間もテックリード・チームリーダーとして入社しています。フロントエンドチームはこの2名がプロパ

    大規模チームの中でフロントエンドを立ち上げて2ヶ月経ったのでまとめる
    toshikish
    toshikish 2021/03/08
  • Reactのユニットテスト2021

    React でユニットテストをするときのベストプラクティスはいつも悩むのですが、とりあえず 2021 年 2 月時点では、こうかなーというのをまとめてみます。 まずテストランナーは jest で確定です。ここで悩む要素はまずありません。 では、React のテストをどうやるか?です。 公式の react-dom/test-utils を使う 公式の react-test-renderer を使う @testing-library/react を使う 選択肢としてはこの三種類が有名なところでしょう。 公式という響きはとても魅力的ですが、実は公式ドキュメントから「ボイラープレートを減らすため、エンドユーザが使うのと同じ形でコンポーネントを使ってテストが記述できるように設計されている、React Testing Library の利用をお勧めします。」という形で、@testing-library

    Reactのユニットテスト2021
    toshikish
    toshikish 2021/02/12
  • フロントエンドの消失 - または戦争が激しくなる話

    React Server Components に感じたフロントエンドの消失という記事に端を発する一連の議論だが、実際この記事で書かれていることはそうだろうなと思う。話の流れとして誤ってる部分はないと思うし同意する。 この記事ではフロントエンドエンジニアとして、この件についての僕の見解を書く。もちろんフロントエンド(とは?)の総意ではない。 元記事と重複する部分多いが、そこは同じ問題を取り扱う以上避けて通れないため、ご容赦いただきたい。 同じ領域を取り扱ってる以上、開発戦争は激しくなる 様々な理由によりユニバーサルが求められている ※この記事でいう「戦争」とは、お互いの領域をい合う開発が、活発化することを「戦争」と称しているだけです。それ以上の意図は全くございません 領域がかぶっている 最近のフロントエンド系ユニバーサルエコシステムは、たしかに PHPRails の領分を侵そうとし

    フロントエンドの消失 - または戦争が激しくなる話
    toshikish
    toshikish 2021/01/10
  • React Server Components はウェブ開発を変えるゲームチェンジングな技術である

    去年末に Facebook の人達が出した React Server Components というものが、React 界隈に激震を及ぼしていますが、速報以外でこの技術について言及している国内のブログが見当たらないため、この記事で解説してみます。間違いや分かりづらい部分があればぜひツッコミをお願いします。 React Server Components は、ただのサーバーサイドレンダリングではありません。クライアントサイドレンダリング(SPA)とサーバーサイドレンダリングを、ギアを切り替えずにいいとこ取りする仕組みです。これまでに存在した様々な技術よりも踏み込んで、フロントエンドとバックエンドの境目を曖昧にしてしまうユニバーサルな技術です。 勝手な造語としていうなら「コンポーネント指向ユニバーサルウェブ開発」とでも呼ぶべきものでしょう。 そして、これはただのユニバーサルなだけの仕組みではあり

    React Server Components はウェブ開発を変えるゲームチェンジングな技術である
    toshikish
    toshikish 2021/01/03
  • Next.js + Electron がとても簡単になっていた

    Next.js + Electron を使えばめちゃくちゃ簡単にデスクトップアプリを作れるという記事です。 デスクトップアプリケーションをWeb技術で作成するElectronを、むちゃくちゃ久々にやってみたら、とても簡単になっていた React のフレームワークである Next.js もバージョン9.xになってから劇的に良くなり続けていて、どんどん触りやすくなっています ちなみに Next.js は非公式な日語翻訳が進んでいるようです。 9割くらい翻訳が完了しているようですが、気になる方は、このサイトの「翻訳プロジェクトについて」をご覧ください。 セットアップする # npmの場合 $ npx create-next-app --example with-electron-typescript hoge $ cd hoge $ npm run build $ npm run start

    Next.js + Electron がとても簡単になっていた
    toshikish
    toshikish 2020/09/22
  • 1