白猫のメモ帳

C#とかJavaとかJavaScriptとかHTMLとか機械学習とか。

TypeScript

Remix+Prisma+Storybookでお手軽Webアプリ

こんにちは。 まだ梅雨入りもしていないですが、そろそろ夏が来たって感じがしますね。さて、せっかくRemixのチュートリアルをやったので試しにWebアプリを作ってみます。 今回はORMとしてPrismaを、UIコンポーネントの確認ツールとしてStorybookを使います…

Remixのチュートリアルをやってみる

こんばんは。App Routerが出るくらいの頃からNext.jsをちらほら使っていたのですが、今回はRemixのチュートリアルをやります。 Next.jsがちょっと重たいなと思うのと(処理がではなくフレームワークの規模的に)、微妙に融通が効かないと思うことがあるので…

AIのビジネスアイデアを考えてもらおうぜAIに

こんばんは。 衣替えをしたんですが、そういえばスプリングコートとか一回も着ていないことに気付きました。日々生成AIの新しいモデルが公開されて群雄割拠の時代という感じですが、なんかすごいことができそうな気がする割にアイデアが思いつきません。 じ…

構造的型付けとValueObject

こんにちは。 急に春を通り越して夏なんですが、いったいどうしたんでしょうか。 桜はいつ見ればいいですか?さて、ちょっとコードを書いてて「ん?」ってなったので。 ValueObjectを作ろう オブジェクト指向ではValueObjectという概念がときどき使われます…

TypeScriptでLangChainを使ってみる その3 RAGパターン編

こんばんは。 最近Alexaの耳が遠くなってる気がするんですが、気のせいでしょうか。前回は検索編でしたが、今回は応用としてRAGパターン編です。 shironeko.hateblo.jp引き続きコードはGitHubにあるので良かったらご覧ください。 github.com データの収集と…

TypeScriptでLangChainを使ってみる その2 検索編

こんばんは。 無印で売り切れになってたカレンダーが復活してたので、買って帰ったら4月始まりでした。前回は基礎編でしたが、今回は検索編です。 shironeko.hateblo.jpRAGパターンもそうですが、結局どこかからデータを集めたりLLMに渡したりしないと独自デ…

未使用のラベル(unused label)と返ってこない値

こんにちは。 最近の太巻きはだんだん豪華になって太くなっていますが、切らずに無言で食べるにはもはや苦行なんじゃないかなと思います。さて、罠を踏んだので備忘録。 わかるひとはタイトル見たら「あー、あれね」ってわかりそう。 先に結論 おそらくこう…

TypeScriptでLangChainを使ってみる その1 基礎編

こんばんは。 リボンライトの接触がおかしくなって部屋の片隅が妖しく赤く光っています。私です。今回から何回かに渡ってLangChainを触っていこうかと思います。 LangChainはPython版とJavaScript(TypeScript)版があるのですが、Pythonの方が開発が先行し…

ChromaDB+Dockerでお手軽にベクトルDBを使ってみよう

こんばんは。 本が読みたいけど首が痛いです。 RAGが作りたい ChatGPTなどのLLMを利用して何かを作っているとRAG(Retrieval-Augmented Generation)という仕組みが作りたくなってきます。 RAGとは簡単に説明すると外部のデータを使ってLLMに情報を与えるパ…

OpenAIのAPIで画像を生成したり、画像から文章が作れるようになったみたい

こんばんは。 最後の夏の名残を感じた気がします。11月だぞー。さて、OpenAI DevDayでいろんなことが発表されたみたいです。 DALLE-3による画像生成と、GPT-4Vによる画像の入力が気になったので試してみます。 ちなみにTypeScript(nodejs)です。今日のコー…

TypeScriptのinterfaceとtype

こんにちは。 夕食のメニューに鍋という選択肢が入ってきてちょっと楽ちんです。 今回はinterfaceとtypeの比較をします。 interfaceっぽいのはオブジェクト型 さて、前回typeについて見ていきましたが、typeに定義できる種類にオブジェクト型というものがあ…

TypeScriptのtype(型エイリアス)がややこしいけど面白い

こんにちは。 本が読みたい気持ちと首が痛い気持ちが拮抗しています。 さて、前回がinterfaceの比較だけで終わってしまったので、typeについて見ていきます。 型アノテーション(Type Annotation) とりあえず型を使ってみます。こんな感じで定数とか変数とか…

JavaとC#とTypeScriptのinterfaceの違い

こんにちは。 急に気候が変わってついていけません。 窓を開けると湿度の低さにびっくりします。さて、最近たまに記事に書いているように、ちょくちょくTypeScriptを触っています。 もともとJavaをやっていて、いまはC#をメイン言語にしているので文法的にそ…

Next.js(App Router)を試してみる3(コンポーネント)

こんばんは。 除湿機の水を捨てるたびに「そんなに水が湧いてくるのおかしくない?」って思う私です。前回はルーティング周りを確認したので、今回はレンダリング周りを確認します。 そもそもReactを触っていないので、Reactの機能なのかNext.jsの機能なのか…

Next.js(App Router)を試してみる2(ルーティング)

こんにちは。 お盆ですね。Googleで「お盆」でサジェストすると「お盆 2023」とか出てきてスポーツの祭典みを感じます。前回はとりあえずNext.jsのアプリを作ったので、今回はルーティング周りを見ていきます。 ルートのルーティング Next.jsのURLルーティン…

Next.js(App Router)を試してみる1(構築)

こんにちは。 毎日暑いですね。フロントエンドのフレームワークをあまり触ったことがなかったので、今回はNext.jsを試してみようかと思います。 Next.jsってなんだ 公式ドキュメントNext.jsはReactベースのWebアプリケーションフレームワークです。 ReactはJ…

ChatGPTのAPIに追加されたFunction callingで遊んでみる

こんばんは。ChatGPTのAPI使ってますか? Function callingという機能がしれっと追加されたみたいなのでちょっと遊んでみます。 何をしてくれるか一見すると謎いですが、プラグインを自分の環境で動かせるみたいな感じです。今回はNode.js(TypeScript)にし…