サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
qiita.com/yuno_miyako
概要 ChatGPT APIを活用したアプリケーションでは、要件が複雑化することで、システムプロンプトが肥大化していくことがあります。 しかしプロンプトが肥大化すると、ハルシネーションの起きる可能性が上がり、思ったような精度が出なくなってくることがあります。 以下を意識してプロンプトを改善させることで、精度向上できる可能性があります FunctionCallingを使って処理の分岐を行う 1つのプロンプトには1つの命令に留める 精度が落ちるプロンプトとは 例えば、あなたの作っているアプリでは以下のようなシステムプロンプトのようになっていないでしょうか? あなたはXXXです。 ルール: Aの時は、Xしてください。 Bの時は、Yしてください。 Cの時は、Zしてください。 # Bの時は以下のデータを使ってください <RAG用のデータ> 日本語で回答してください。嘘はつかないでください。etc e
概要 1. Embeddingsとは Embeddingsとは単語やテキストをベクトルデータとして表現する技術 2. よくある要望 ChatGPTが知らないドメイン知識をベースとした回答をさせたい 3. Embeddingsを使ったソリューション あらかじめドメイン知識をEmbeddingsでベクトルデータにしてDBに保存する ユーザの質問に答える前に、関係のありそうなドメイン知識をDBから取得して、プロンプトに加える ChatGPTがそれをもとに回答するので、ドメイン知識に即した回答をしてくれる 4. このソリューションの課題 以下のような問題で正しくない回答をする可能性がある。 関連するデータが取れないから答えも違う 取得された関連データが不十分で答えが不十分 関連情報は取得できたが、答えが違う ※ 詳細は本文で記載しています。 実装方法 2ステップで実装をすることができます 1️⃣
結論 社内システム上の多数のアプリケーションがChatGPT APIを活用しているというシチュエーションを想定し、AI共通基盤が持つべき機能とアーキテクチャを検討しました。 ポイントは以下の3つです。 社内システム上のあらゆるアプリケーションにChatGPT APIが組み込まれる未来が想定される アプリケーションごとに必要な実装は重複するため共通化が可能 Proxyサーバを社内に配置しそこで共通的な処理を行い、各アプリケーションはAPI呼び出しのみを行う 背景 -ChatGPT APIの2024年を予想する- 2023年5月現在のChatGPT APIの活用状況 2023年3月1日にChatGPT APIであるGPT3.5-turboがリリースされ、あらゆるプレイヤーによってこぞって活用方法が模索されています。 現在の活用状況について知見を深めたかったため、TwitterにてChatGPT
記事の概要 約1年間DAOでサービス運営したものの、今回クローズすることを決定しました。過去1年間で利益230万円を達成し、サービス改善、NFT会員証の発行、ハッカソンで優勝するなど、多くの成果を上げました。しかし、貢献数と売上の低下によるモチベーションの低下、運営コスト、税務上の問題などがクローズの理由となりました。それでも、この1年間で得た成果からDAOのポテンシャルを熱烈に感じることができました。 Englister DAOの成果 この1年間でEnglister DAOが生み出した利益は230万円でした。これは僕ひとりの力では絶対に達成し得なかった数字であるため、まさにDAOがあったおかげ、DAOの成果だと考えています。 この成果を次の3つに分解して紹介していきます。 1、サービス改善に伴う売上増加 1~5月は個人開発で運営していましたが、その間はずっと横ばいだったのですが、6月にD
DreamBoothって何? DreamBoothとは、特定の対象を事後学習させる技術です。 Stable Diffusionなどの画像生成AIを使うと、ユーザーが入力したテキストを頼りに、AIがオリジナルの画像を数秒~数十秒程度で自動生成してくれますが、それでも「私のペット」を描いてと言っても描いてくれませんでした。 そこで例えば、自分のペットの画像を5枚程度用意し、「私のペット」とラベルづけをさせて学習をさせることで、自分のペットの画像を生成できるAIモデルを作ることができます。 一度学習させれば、そのモデルを使って様々な「私のペット」画像を作ることができます。 フランスパリに行ったことがなくても、「エッフェル塔を背景にした私のペットの写真」と指定すれば、まるでエッフェル塔をペットと一緒に行ってきたかのような画像を作れてしまいます。 画家を指定してイラストを描くこともできる ここまでで
ハッカソンに優勝するつもりで参加した 先日、500名がエントリーし98プロダクトが提出された東京Web3ハッカソンに参加しました。 東京Web3ハッカソンの開発期間は2-4週間に渡り、大きな時間と労力の投資です。しかし優勝賞金は60万円であり、審査員は有名な企業やVCが並ぶため、優勝した際のROIは高いと思いました。 逆にいうと、優勝しなければ金銭的にも認知的にもROIが著しく低下してしまいます。 私は、優勝以外を目指さない覚悟で参加しました。 参加してわかった優勝プロダクトの法則 私はまず、調査を行い、他ハッカソンの優勝プロダクトを片っ端から見ていきました。 その中でいずれのプロダクトに共通する法則性が見えてきました。 課題とコンセプトが明確 デザインかっこいい 作り込まれている 優勝するための3ステップ ① 成否が7割決まるアイディア出し アイディアがダメだと、そのさきのプロダクトをど
web3のキラーアプリケーションは「トークン」だ web1, web2には代表するアプリケーションが存在した。web1はホームページやメールであり、web2はGAFAによるSNSが席巻した。 じゃあweb3のキラーアプリケーションはなんなのだ?と聞かれることがある。僕はこれはもうすでに存在していて、それは「トークン(仮想通貨、NFT)」だと思っている。 (引用: https://capitalism-slaves.com/new-economy/7918/) web3の発明は、トークンの発明だと思っている。インターネット上に通貨のように振る舞ったり、株式のように振る舞ったり、所有権のように振る舞うことができる何かが発明されたのだ。 トークンと一言に言っても玉石混交だ。ビットコインやイーサリアムのように自律分散的に存在するものから、企業が発行するもの、お金を集めることだけを目的にした詐欺的な
前書き ワイ「DAO(ダオ)っていう新しい組織の形があるんかいな。」 ワイ「前澤友作さんの立ち上げたDAOに15万人が集まったとも聞くし」 ワイ「スタートアップをDAOでやったら前澤さんみたいに死ぬほど儲かるんちゃうか?!」 想定読者 DAOを作りたい人 DAOを知りたい人 DAO知らんし作りたくもない人も 今回説明すること DAOで実現したい世界観 (ワイ記法で書きました) どんなものが作れるのか (図あり) どうやって作るのか (作りたいエンジニア向け) どういう世界観を作りたいのか? 僕がDAOで作りたいスタートアップの世界観を3つ、ワイ記法1で記載します。 トラストレスな組織 ワイ「すごい起業アイディアを思いついたで!うまくいけば100兆円企業や!」 ワイ「無職やめ太郎さんを採用しよう!」 ワイ「やめ太郎さん、起業しようと思ってるんやけどエンジニアやらへん?儲かったら還元するで!」
追加(2022/08/07) 続編書きました。こちらも面白いです。 DAOの定義・特徴 まず、DAOについての基礎知識を簡単に解説します。すでに知っている方は読み飛ばしてOKです。 DAOってなに?? DAOとは、Decentralized Autonomous Organizationの略称で、日本語では「自律型分散組織」と呼びます。 web3やブロックチェーンの文脈から生まれた概念で、「2022年流行する」と言われている新しい組織の形です。 フォロワーの大半がエンジニアで占めている私のTwitterアカウントでアンケートを実施したところ、72%の人がDAOを知らなかったため、世間的にはまだまだ知名度は低いと思われます。 DAOを本格的にやろうと思うんだけど、興味ある人いる…?(需要調査) — ちぇん (@yuno_miyako2) June 4, 2022 しかし世界を見渡すと毎日数多
集客としてのSEOの重要性 個人開発者の多くが悩む、集客。 せっかく作ったのに誰も使ってくれない、というやつです。 集客の手段は様々ありますが、よくあるのが主に以下の5つです。 広告 SNS運用 口コミ SNSにおけるバズ 検索流入(Google, AppStoreなど) この中でもお金がかからず、時間的コストもかけず、運に頼らないもので、 長期的に安定して集客ができるのは「検索流入」です。 SEOはその検索流入を最大化させようという取り組みになります。 対象読者 ツール系のWebアプリの検索流入を増やしたい個人開発者を対象としています。 SEOで検索をするとブログやメディアを対象とした解説記事が多く見つけることができますが、ツール系のWebアプリを対象としている記事は少ないという印象です。 また、内容としては「キーワード選定」と「タイトル、h1タグの設定」という超基本的(でも一番大事だと
追加(2022/04/23) URLを非公開にしました😭 本記事で言いたいこと Wordleをひとりで毎日やるの飽きてないですか?一緒に対戦しようよ! 思いつきで何か作るときは「開発コスト」と「維持コスト」を最小限にしよう 作ったもの ターンバトル性のWordleバトルゲームを作りました! ゲーム性を高めるために以下のような機能を実装しました😄 時間制限 辞書にない文字を3回かくとスキップされる 対戦者がいなくなってしまった時のAIモード プレイ動画 毎日Wordleやって上達してきた人へ! 他の人と対戦したくないですか? Wordle Battle Onlineという対戦ができるゲームを作りました〜! ぜひプレイしてねhttps://t.co/Ifhn1Xp7AQ pic.twitter.com/KkIYTf9Wy7 — ちぇん (@yuno_miyako2) March 2, 20
年利30% 大学生の頃に、寝食を忘れて機械学習による株の自動売買システムを作ったことがありました。 上記の画像は、実際にそのシステムを稼働させて実際にあげた利益になっています(記録にないだけでもう少し続けていたはず) 今回の記事は、そんな手塩をかけて育てたシステムが技術的負債で死んだ話です。 抱えていた技術的負債の一覧 プログラミング経験ほぼなしの中自己流で作っていたため、今思うとかなり厳しい問題をたくさん抱えていました。 R言語で全部作ってる 変数名が全部日本語😓 R AnalyticFlowというマイナーなツールで開発 運用に手動オペレーションが多数存在 コードベースが数万行(検証コード含む) 株価データを取得するスクレイピングがライブラリ依存 ファイルパスなどが絶対パスで指定されていて自分のPCでしか動かない 実行完了まで2~3時間かかる(毎日) 実行が日を跨ぐとエラーが起きる R
要約 Qiita記事がトレンドインすると、瞬間的にWebサービスへのアクセス数が急増するが、数日でアクセス数は元に戻ってしまう。 そこで以下の施策を速攻で打ってバズっているうちに有益な学びを得るべきと考え、本記事はそれを実践した結果を実データと合わせて説明している。 事前登録フォームを作って興味を持ってくれた人と繋がる Twitterやはてぶのコメントからどうして興味を持ってくれたのか考察する 有料機能を作って単なるバズなのか、本当にニーズがあるのか判断できるようにする バズる1週間前にやっていたこと 3日でツールをサクッと作った 英語面接や仕事で海外の人とやりとりをするときに「ちょっと難しい質問」をされると、途端に5歳児になってしまう自分が恥ずかしくなり、DeepLで英語の勉強をするツールを作った。 自分が使うだけのつもりだったので、アカウント機能などはなく、コアな機能1つを実装しただけ
要約 「英語で意見を言おうとすると5歳児のようになってしまう」という課題を解決するEnglisterというサービスを開発した。 自分で使ってみたところ、10問程度の問題を解くだけでスラスラと英語で意見を言えるようになった。 実装はDeepL APIとNext.jsのAPI routeを使って爆速開発をした。 追加(2021/01/18) 記事を公開してから毎日機能追加をしています。2週間前からどれだけ変わったか是非見ていただきたいです。 背景にあった課題 「英語で意見を言おうとすると5歳児のようになってしまう」 英語にすごい苦手意識があるわけではない。TOEICは840点で、すごく簡単な日常会話なら問題なくできるので、海外旅行で困るということはなかった。しかし、仕事でたまに海外の人とやりとりをするときや外資系企業の英語面接で**「ちょっと難しい質問」**をされると、途端に5歳児になってしま
最初の個人開発サービス みなさんは最初に個人開発でサービスをリリースしたとき、どれくらいユーザが集まりましたでしょうか? 私は友人3人と4ヶ月かけて「パンツシェアアプリ」を作ったのが最初の個人開発でして、その時の累計ユーザ数を申しますと・・・ 4人 でした。 これは開発者3人を含んだ数字です。つまり実質1人ですね。 タイトルコール 今回のしくじり先生のタイトルは**「4ヶ月かけて友人三人で必死でアプリを作ったけど、累計ユーザ数4人でサービス終了した話」**となります。 いかにしてプロジェクトはスタートしたか なぜ「パンツシェアアプリ」などという、名前を聞くだけで失敗しそうなものを作ることになったのか。 これには深い話があります。 大学生が3人集まって、語るとですね、俺らでも何かでかいことができるんじゃないかと盛り上がってしまいます。大学生が酒の場で盛り上がってそのままYoutubeチャンネ
const [state, setState] = useState({count:0, boolean:true}) Reactで最もよく使う状態管理を行うhook、 useState。めちゃくちゃ使い心地いいですよね。 でもこのuseStateは、当たり前ですが、共有されません。 沖縄県在住のAさんがsetStateで状態を変更しても、東京都在住のBさんのstateには影響を与えません。 当たり前ですね。 でもそれができたら面白くない? 誰かがsetStateを実行したら、それが同じページを見ているすべての人に反映されたら何か面白いことができそうじゃないですか? 例えば、オンライン勉強会とかができる 上記のデモ画面を見てください。ブラウザを二つ立ち上げて、片方だけを操作しています。なのに、もう片方のスライドも同期してスライドが切り替わっているのが分かるでしょうか。 これはスライド番号を
今回伝えたいこと Hasuraの有効性を伝える 開発工数の削減効果 柔軟性の高さ セキュア 「開発工数の削減」という課題 昨今のエンジニアの不足や単価の上昇により、開発工数を十分に確保できない課題がある。どこの会社も開発工数を減らすために色々な策を講じているのではないか。 新技術の活用 慣れた技術の利用 プロセスの見直し 徹底した自動化 スコープの見直し 過剰品質をやめる などなど。今回は一番上の「新技術の活用」によって開発工数を削減できる可能性があるのではないかということを提案する。 こんなアプリを作ることになったとする 仮にあなたがこんなアプリを作ることになったとする。 シンプルなオンラインホワイトボードツールで以下のような機能があることが必要 付箋に文字を書ける 付箋を動かせる 付箋の色がユーザ固有の色になる 付箋を消せる(自分の作った付箋だけ) 付箋の位置、内容などをリアルタイムに
背景 AWS LambdaでAPI開発をする AWS LambdaとAPI Gatewayを組み合わせることでサーバレスのAPIを開発することが可能です。サーバレスで構築することで手間をかけずにスケーラビリティやコストの最適化を手に入れることができ、さらに死活監視等が不要のため運用のコストを大幅に下げることができます。 開発パターンがまとまっていない サーバレスによるAPI開発は非常にメリットが多いのですが、開発パターンが様々あり一貫した方法があるわけではありません。例えば、Lambdaのデプロイは手動でzipをアップロードする方法や、SAM/ServerlesssFrameworkなどのデプロイ支援ツールを利用する方法、さらにオンラインエディタのCloud9を利用することもあります。関数ごとにディレクトリを分離する場合もあるし、ソースコードを共有してエントリーポイントだけ切り替える場合も
結論 「アジリティ」「コスト最適化」「スモールな構成」「開発スピード」という観点でWebアプリケーションのアーキテクチャを考えてみました。 ServerlessFrameworkを使い倒す フロントエンドはS3 hosting + CloudFrontで。SSRもLambda@Edgeでできます データベースはRDSは使わずにDynamoDBで APIは基本的にGraphQL。必要に応じてRESTも簡単に追加できるよ。 補足(2022/04/12) 最近個人開発しているこちらのWebサービスはこのアーキテクチャに沿って作られています。 このアーキテクチャでどんなものができるのよ、という視点で見ていただくと面白いかもしれません。 ↓ 背景 アーキテクチャに絶対の正解はない アーキテクチャには絶対の正解はありません。 なぜなら、プロダクトやフェーズによって求められる要件が異なり、それに適したア
失敗してしまう個人開発 趣味の個人開発で過去にいくつものプロダクトを作ってきました。 ユーザがたくさんついて、ゆくゆくは収益化したいななどと思いながら作っていましたが、残念ながらどれも一瞬だけ少人数の人に使われるだけで、そのさきを描けずにいました。 「いいアイディアが思いついたからいきなり作り始めた」とか「顧客が不在のままとにかく作ってしまった」とかは個人開発でやりがちです。最初にアイディアや顧客について詰めていなかったために誰にも使われないで終わってしまう、というのはよくある失敗なのではないかと思っています。 趣味の開発や、技術力向上という意味ではそれでもいいのですが、あわよくばビジネスにしていきたいという思いがある時は一旦考え直す必要があるかもしれません。 誰も課題だと感じていない領域を攻めていたり、自分の解決策がユーザにとってお金を払いたいほど魅力的でない場合はユーザを定着させること
概要 ウォータフォールでの開発経験が長いチームメンバにて、アジャイル開発推進プロジェクトとしていくつかのアジャイル開発のプラクティスをレクチャーし、その感想を伺いました。 メンバの現職ではどのようにプロジェクトを進めているか 機能単位のタスクを出して見積もりを行う 線表(スケジュール)を引く 基本的にスケジュール通りに進めていく 遅れが出たら別部署から助けを借りる、人を増やす、お客さんと調整を行う 「この人はこの機能を担当」という風に分担し、個人でコーディングを進めていく(他の人がどんなプログラムを書いているかは全く見えない) 基本的にその部署が今までやってきた案件をとってくるため「なにこれ」という仕事はこない メンバが感じているウォーターフォールの良いところ/悪いところ 良いところ 得意な案件を慣れた手順で開発していくため、不安なくプロジェクトを進めることができる 「こういうものを作りた
はじめに 汚いとか綺麗とか何? よく「汚いコード」とか「綺麗なコード」あるいは「美しいコード」なんていう言葉が使われることがある。 汚い、綺麗、美しい、という言葉は元々個人の価値観に基づく感覚的な言葉だ。 処理の羅列であるソースコードに対して感覚的な言葉を使うのは、はたから見ると奇異な行為にうつるだろう。 一方で、プログラマは真剣に綺麗なコードを書くことに努力をしている。彼らは一体何をやっているのか、「リファクタリング」という行為から少し考えてみることにする。 想定読者 リファクタリングって何?って人 大事なのはわかるけど進捗を産まないリファクタリングは現実的にできないよって人 リファクタリングって何? リファクタリングとは一言で言えば「お前の書いたその汚いコード、とりあえず動いているけどもっと綺麗なコードにしよう」ということである。 もう少しかっちりいうと「コードの振る舞いを変えずに内部
前書き プログラミングで一番難しいところの一つは、「見積もり」だと私は思う。人から頼まれてプログラミングをする時、必ず最初に聞かれるのが「だいたいどれくらいで終わるか?」だ。厳しいところだと「何日に納品してくれるのか?」を問われる(むしろこれが普通かもしれない)。まっさらな状況から過去の経験を総動員してかかる時間を予想したり、可能な限りタスクに分解して時間を見積ったりするが、いつも不安に駆られる。多くの人も、見積もりに対して困難と不安を感じているのではないかと思われる。見積もりに対する自分の知識と経験を話して他の人にも参考にしてもらいたいと思って記事を書いた。 見積もりという言葉には色々な意味を含むが、今回の記事では「プロダクトをリリースするまでの期間の見積もり」から「頼まれた一つの機能の完成させるための期間の見積もり」までのスコープで話をしたい。 なぜ見積もりをしないといけないのか? 見
追記(2019/11/2) 今回の記事で深く扱えなかったリファクタリングに関する記事を書きました。 「汚いコード、綺麗なコードって何?」リファクタリングを考えてみる テスト駆動開発とは テスト駆動開発とは、「テスト => 実装 => リファクタリング」という流れを何回も何回も繰り返してプロダクトを成長させていく開発手法です。 もう少し詳しく説明します。次の3段階を繰り返します。 1. テストケースを考えるフェーズ これは設計を考えることに等しいフェーズです。このオブジェクトがどんな機能を持っていて欲しいか、どういう風に使われるか、そしてその時にどんな結果を返して欲しいか、という思いをテストケースに込めます。 重要なのはこの時に実装のことは一切考えず、どう使われるかを考えることです。 2. 実装するフェーズ テストをパスするためだけの最低限度の実装をします。この時も抽象化やキレイなコードなど
追記(2019/11/2) 今回の記事で深く扱えなかったリファクタリングに関する記事を書きました。 「汚いコード、綺麗なコードって何?」リファクタリングを考えてみる 追記(2019/08/16) 今回の記事では深く扱えなかったテスト駆動開発についての記事を書きました。参考にしてください。 僕たちがテスト駆動開発をする理由 リファクタリングに関する記事も書く予定です。 背景 フルリモートエンジニアはとてもいいものです。どこでも仕事ができるので旅行をしながら、海外にいながら、温泉に入りながら、どこででも好きなタイミングで仕事をすることができます。 この素晴らしい自由を支えるのは顧客との信頼です。 フルリモートの仕事は、仕事の過程を見ることができないため完全な成果物主義であり、この仕事をこの人に任せればこんな成果物が返ってくるだろうという期待と信頼関係によって成り立っています。 顧客に価値を届け
作ったもの 作ったものがこちらです。タイトルはChange The World。適当です。 URL → Change The World 個人開発ってすごく時間がかかる 以前こんな記事を書かせていただきました。 初心者3人でwebサービス(webアプリ)を作ったので、立ち上げからリリースまでを時系列に書いていく この時は一つのwebサービスを作るのに3人で5ヶ月もかかってしまいました。 とても時間をかけて作ったサービスが使われないと悲しい気持ちになってしまいます。 今回は時間のかかる工程を全て省き、1人で5時間以内にwebサービスをリリースしてみました。 作ったもの きっかけ(ポエム) 受託開発でとある企業のクーポンのアプリを作っていた時に、僕はふと「こんなことがしたかったんだっけ」と思ってしまいました。 確かにプログラミングが好きで始めた仕事で気楽にやらせてもらっています。しかし、心のど
まえがき 以前に初心者3人でwebサービス(webアプリ)を作ったので、立ち上げからリリースまでを時系列に書いていくという記事を書かせていただきました。 今回は、前回の失敗を踏まえてサービス作りを考えて実装してみました。 それがTwitterでプレゼントキャンペーンを開ける「プレキャン」というサービスです! 今回の記事は雑多な内容になりますので、目次から気になるものだけをつまみ食いしてお読みください。各項目の内容は独立していますので、どこから読んでいただいても大丈夫です。 目次 1、前回の反省点と、プレキャンを作ろうと思ったきっかけ 2、サービス内容 3、試しにプレゼントキャンペーンに応募してみて 4、「RTしたらすぐくる」を実現する技術 5、TwitterAPI制限への対応 6、キャンペーン終了後に再抽選 7、dynamoDB + lambda開発で採用したプラクティス 8、システムの応
8/19(開始から0日目) 議題 : 「何をやるか決める」 時間 : 3時間 初日の会議は何をやるか決めました。作ってみたいもの、やってみたいこと、アイディアをとにかく雑多に書き出していきました。 その時に出たアイディアがこんな感じです(原文ママ) リアルタイムに腹筋バトル ツイッターのその人のイラストだけを収集して表示 飲食店のメニューのweb化 スピード合コン jsのアニメーションをフル活用したブログ 目標達成を対戦化(対人) バーチャルユーチューバーの情報を集める 自分の宣伝してほしいものを提示して、ツイートをしてもらう 同じ料理をどれ程うまく撮れたか投稿し合って投票でランキングするアプリ。 youtubeライブ&チャット + twitter CMの間に溜まったツイートを見るサイト 飯を食べるとカーリングのストーンが投げられる 「自分たちでも作れる」「作ってて楽しいもの」「ユーザ投稿
このページを最初にブックマークしてみませんか?
『@yuno_miyakoのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く