ブックマーク / qiita.com (411)

  • 【ChatGPT】とベクトルデータベースによる企業内データの活用(いわゆるRAG構成) - Qiita

    記事は日オラクルが運営する下記Meetupで発表予定の内容になります。発表までに今後、内容は予告なく変更される可能性があることをあらかじめご了承ください。下記セッションでは、記事の内容以外にデモンストレーションも実施する予定です。 ※セミナー実施済の動画に関しては以下をご参照ください。 はじめに 2022年暮れ、ChatGPTの登場以降、あらゆる企業がDXの在り方を問われはじめ、大規模言語モデルの仕組みをどのように業務に取り入れるかを検討されていると思います。 その検討の一つとして、「GPT(LLM)が学習していない企業内のデータや最新のデータも有効活用すべき」 という点は非常に大きな論点なのではないでしょうか。 ご存じの通り、LLMとはインターネット上に存在するドキュメントデータをクローリングにより大量に収集し、それを学習データとして機械学習にかけたモデルです。 従って、至極当たり

    【ChatGPT】とベクトルデータベースによる企業内データの活用(いわゆるRAG構成) - Qiita
    yoheimuta
    yoheimuta 2023/10/04
  • ChatGPTで独自データを学習させて回答してもらう方法 - Qiita

    ChatGPT,使っていますか? ChatGPTは文章を要約したり、プログラム作ってくれたり、一緒にブレストしてくれたりして当に便利なのですが、社内情報などの独自データに関する情報については回答してくれません。 プロンプトに情報を記述して、そこに書かれている情報から回答してもらう方法もありますが、最大トークン4000の壁がありますので、限界があるかと思います。 この課題についてなんとかならないかと考えて色々と調べて見たところ、解決する方法が見つかり、いろいろと検証をして見ましたのでその結果をシェアしたいと思います。 サンプルコード(GoogleColab) 百聞は一見にしかずということで、実際に試したサンプルは以下にありますので、まずは動かしてみることをお勧めします。 このコードを上から順番に動かすと、実際にインターネット上から取得したPDFファイルに関する内容をChatGPTが回答して

    ChatGPTで独自データを学習させて回答してもらう方法 - Qiita
  • protoc-gen-lint 以外の Protocol Buffer の Linter を紹介する - Qiita

    サポートしているリントルールは次の 7 つ。 import 文の並び順を揃えるのと、Enum や Message 名のケースを揃えるルールがある。 これらのルールは後述する Linter はすべて備えている。 "Sort import statements alphabetically.", "Use CamelCase (with an initial capital) for message names.", "Use underscore_separated_names for field names.", "Use CamelCase (with an initial capital) for enum type names.", "Use CAPITALS_WITH_UNDERSCORES for enum value names.", "Use CamelCase (with

    protoc-gen-lint 以外の Protocol Buffer の Linter を紹介する - Qiita
    yoheimuta
    yoheimuta 2019/12/17
    書いた。
  • SpringBoot×OpenAPI入門 〜Generation gapパターンで作るOpenAPI〜 - Qiita

    背景 Javaのコミュニティイベント「JJUG CCC 2019 Fall」に参加。 そこで聞いた「Swagger ではない OpenAPI Specification 3.0 による API サーバー開発」の登壇内容に触発されて超簡単なOpenAPIを作った話。(浅いです) 今回のゴール SpringBootを使ってOpenAPIを書く OpenAPIを使った開発フロー(ざっくり) ルール:Generation gapパターン → 自動生成したクラスファイルは編集しない。 1. API定義ファイルを用意 OAS(OpenAPISpecification)にあるサンプルを使用 2. 定義よりコード自動生成 Gradleのプラグイン【openapi-generator-gradle-plugin】を使用。 APIの定義ファイルよりコードを自動生成してくれるGradleプラグイン。

    SpringBoot×OpenAPI入門 〜Generation gapパターンで作るOpenAPI〜 - Qiita
    yoheimuta
    yoheimuta 2019/11/27
  • gRPCのカレンダー | Advent Calendar 2019 - Qiita

    The Qiita Advent Calendar 2019 is supported by the following companies, organizations, and services.

    gRPCのカレンダー | Advent Calendar 2019 - Qiita
    yoheimuta
    yoheimuta 2019/11/26
  • timestamp with time zone型はタイムゾーン情報を持っていない - Qiita

    絶対時刻と概念時刻 2015年1月1日00:00:00 という時刻表記は、地球上のどこで読んだかによって意味が変わってしまいます。このような時刻のことを 概念時刻 と呼ぶことにしましょう。ボジョレー・ヌーボーの解禁時刻、11月第3木曜日00:00:00も概念時刻だからこそ世界各地で解禁時刻が違い、バブル期は日が世界で最初に解禁されるって盛り上がったものです。 2015年1月1日00:00:00(日時間)、これなら 絶対時刻 です。世界のどこで読もうと、ある一瞬を意味します。これは2014年12月31日15:00:00(グリニッジ時間)と同じ瞬間を表しており、前者と後者は同じ瞬間の別表記に過ぎません。 OracleおよびPostgreSQLのtimestamp with time zone型が格納する値はその名前に反し、絶対時刻です。 タイムゾーン情報はまったく含まれていません。 具体的

    timestamp with time zone型はタイムゾーン情報を持っていない - Qiita
    yoheimuta
    yoheimuta 2019/08/13
  • 著名なOSSがどのように構成され、何故そのように作ったかを解説する「The Architecture of Open Source Applications」がすごい!! - Qiita

    著名なOSSがどのように構成され、何故そのように作ったかを解説する「The Architecture of Open Source Applications」がすごい!!英語アーキテクチャ学習OSS新人プログラマ応援 要約 著名なOSSのアーキテクチャを学べるThe Architecture of Open Source Applicationsがすごい The Architecture of Open Source Applicationsとは Vol1~2では48個の(実際には49個ある)OSSのアーキテクチャを、それらの開発者やメンテナが説明する。なんと無料で読める(PDFやepubで読む場合は有料)。 また、より簡単にアーキテクチャを学ぶ為に、500行ぐらいでスプレッドシートやテンプレートエンジンなどのソフトウェアを作る「500 Lines or Less」もある。これは特にVo

    著名なOSSがどのように構成され、何故そのように作ったかを解説する「The Architecture of Open Source Applications」がすごい!! - Qiita
    yoheimuta
    yoheimuta 2019/07/06
  • Swift 5.1 に導入される Opaque Result Type とは何か - Qiita

    Swift 5.1 で Opaque Result Type (SE-0244) が導入されます。 Opaque Result Type とは何でしょうか。例を見てみましょう。次のような Animal と Cat があるとします。 protocol Animal { func foo() } struct Cat: Animal { func foo() { print("cat") } } some という新しい言語機能を導入しなくても、 -> some Animal の代わりに -> Cat や -> Animal とすれば既存の言語機能で同じようなことが実現できます。しかし、 -> Cat では、内部実装を過剰に公開している -> Animal では、パフォーマンス上のロスが発生する という問題がありました。これを解決するために、 内部実装を隠蔽しながらパフォーマンスにも影響しない手

    Swift 5.1 に導入される Opaque Result Type とは何か - Qiita
    yoheimuta
    yoheimuta 2019/06/05
  • Go - Headless Chrome を使って SPA をスクレイピングする - Qiita

    はじめに SPA では JavaScript によるクライアントレンダリングを考慮しないと、すべての要素をスクレイピングすることはできない。 そのため、実際のブラウザを使ってスクレイピングを行うことになる。 これを行うデファクトライブラリの一つに、Chrome チームが公式にサポートしている Puppeteer がある。Puppeteer は Chrome DevTools Protocol を介して Chrome の操作を行うためのライブラリである。Chrome DevTools Protocol とは Chrome を操作するための Protocol であり API 定義が含まれている。例えば、特定の URL に遷移して画面を描画したり、ボタンをクリックしたり、要素の情報を抜き取ったり、スクリーンショットを取得したりできる。 ただ、Puppeteer は JavaScript のライブ

    Go - Headless Chrome を使って SPA をスクレイピングする - Qiita
    yoheimuta
    yoheimuta 2019/03/22
  • トークンを利用した認証・認可 API を実装するとき Authorization: Bearer ヘッダを使っていいのか調べた - Qiita

    トークンを利用した認証・認可 API を実装するとき Authorization: Bearer ヘッダを使っていいのか調べたAPIOAuthWeb TL;DR HTTP でトークンを利用した認証・認可をする手法として RFC 6750 がある OAuth に限らず、トークンを利用して認証・認可する機構の一部として Authorization: Bearer ヘッダを使うことができる 使い方について詳しくはこの記事の下のほうに書いた 要求 トークンを利用した認証・認可機構を持つ API を作りたい クライアントがトークンを HTTP リクエストに含めて送信し、サーバはトークンを検証してリソースへのアクセスを許可したい Authorization: Bearer トークン ヘッダでトークンを送る API あるよね、ああいうやつ 疑問 Authorization: Bearer ヘッダは OA

    トークンを利用した認証・認可 API を実装するとき Authorization: Bearer ヘッダを使っていいのか調べた - Qiita
    yoheimuta
    yoheimuta 2019/02/15
  • GolangでJIS規格の都道府県を扱うライブラリを作った - Qiita

    都道府県をシステムで扱う時、多くの場合JISX0401の規格に基づいたコードが振り分けられることがほとんどかと思います。 都道府県は全部で47件と数が少ないためプログラム中にハードコードされる実装も多いかと思いますが1、 そもそも規格があるのだから規格に沿ったライブラリを公開してそれを利用するほうが、規格という共通認識・その実装の再利用といった観点から良いはずです。 多くのプログラミング言語には、JISX0401に沿った都道府県の情報を得るライブラリが存在しているかと思いますが、Golangにおいてはその存在が確認出来なかったため今回実装して公開を行いました。 ライブラリの名称は過去Rubyを利用していた時代に愛用していたchocoby/jp_prefectureをリスペクトし、同じ名前をつけさせていただきました。 https://github.com/diverse-inc/jp_pre

    GolangでJIS規格の都道府県を扱うライブラリを作った - Qiita
    yoheimuta
    yoheimuta 2019/01/17
  • 三角関数は何に使えるのか 〜 サイン・コサイン・タンジェントの活躍 〜 - Qiita

    「他にこんなのがある」というのがあったら是非いっぱい教えてください! 歴史的に最も古くからある用途は「測量」でしょう。三角関数誕生のキッカケはまさに測量の必要性にありました。比較的日常生活でも見る機会がありそうな用途でしょうか。 ログハウス ケーキカット 震災時の家の傾き推定 現代では「波」としての用途が多いでしょうか。Twitter での様々な人のコメントを見ていても、 おっぱい関数 jpeg 画像 音声処理 といった具合に、波に関する話がかなり多いイメージです。これらの三角関数の使われ方を特集してみます。様々な分野に共通する三角関数の使い方のエッセンスを抽出したつもりですが、これでもかなり分量が多くなりました。摘みいするような感覚で読んでいただけたら幸いです。 2. 三角関数の 3 つの顔 最初に三角関数には大きく 3 つの定義があったことを振り返っておきます。以下の記事にとてもよく

    三角関数は何に使えるのか 〜 サイン・コサイン・タンジェントの活躍 〜 - Qiita
    yoheimuta
    yoheimuta 2019/01/06
  • Naming convention - 大文字・小文字に関わる命名規則を表す用語一覧 - Qiita

    大文字・小文字に関わる命名規則を表す用語は、数が多いので整理しておく。 linter を書く時に整理の必要を覚えた。その時のメモを今回清書した。 ref. Protocol Buffer - protolint の説明と CI 導入手順 - Qiita single word(単一語) と compound word(複合語)で大別できる。 single word 用語 別名 例 説明

    Naming convention - 大文字・小文字に関わる命名規則を表す用語一覧 - Qiita
    yoheimuta
    yoheimuta 2018/12/27
    メモを清書。
  • Protocol Buffer - protolint の説明と CI 導入手順 - Qiita

    追記 VSCode と Intellij IDEA をはじめとした Jetbrains IDE 向けのプラグインが用意されている plexsystems/vscode-protolint: A protobuf linter for visual studio code yoheimuta/intellij-protolint: A protobuf linter for JetBrains IDEs protolint は Protocol Buffer ファイル(proto3) のリントを行うコマンドラインツールである。 yoheimuta/protolint: A tool to enforce Protocol Buffer style and conventions. 現在のところ、Google のスタイルガイド準拠をサポートしている。 Style Guide  |  Proto

    Protocol Buffer - protolint の説明と CI 導入手順 - Qiita
    yoheimuta
    yoheimuta 2018/12/27
    書いた。
  • RxTest、RxBlockingによるテストパターン

    RxTestとRxBlocking、プロジェクトにRxSwift導入している人はみんな使っていますよね 私の関わっているプロジェクトでもRxSwiftを使用しており、もちろんテストコードを書く際にはこの2つのライブラリを使っています。 RxTestとRxBlockingを使ったテストコードの書き方にはいくつか基的なパターンがあり、それらを覚えておけば、Rxなコードのテストは簡単にかけるはずです。 記事では、RxTestとRxBlockingを使ったテストコードの基パターンと、実際のプロジェクトで出てくるようなプロダクションコードに対してそれらのパターンをどう適用するかという具体例を説明します。 なお、記事で紹介するコードはRxSwift/RxCocoa/RxTest/RxBlockingのいずれもバージョン4.1.2で動作確認しています。 また、テストコードの記述にはQuick、N

    RxTest、RxBlockingによるテストパターン
    yoheimuta
    yoheimuta 2018/12/23
  • DDD基礎解説:Entity、ValueObjectってなんなんだ - Qiita

    はじめに DDDの実装パターンとして、EntityとValueObjectというものがあります。 ドメイン駆動一般に複雑な抽象論が多い中で、コードに近く一番イメージがつきやすいコード事例として出てくるため、ここだけは何となくわかるぞ!という方もいらっしゃるのではないでしょうか。 今日はこちらの概要とそれぞれの使い道について書きたいと思います。 先にざっくりイメージ図をお伝えすると、こういう図を使って解説します。 何の目的で作るのか? ドメイン駆動設計は何を解決しようとしているのか こちらの記事で、ドメイン駆動設計のアプローチはは以下の2ステップがあるということを書きました。 ドメイン(ソフトウェア化対象の世界)に対して、システムで使うためのモデルを作成する モデルをソフトウェア(コード)に落とし込む DDDでは、このStep2の モデルをコードで表現するためのパターン として、以下の4つを

    DDD基礎解説:Entity、ValueObjectってなんなんだ - Qiita
    yoheimuta
    yoheimuta 2018/12/10
  • dwango.co.jpをReact/TypeScript/Storybookでリメイクしてみた。 - Qiita

    はじめに この記事は 第2のドワンゴ Advent Calendar 2018 の9日目の記事です。 2018年3月にdwangoに内定をもらい、8月からアルバイトとして働かせてもらっているhiraike32と言います。 2019年4月からは新卒としてお世話になります。 アルバイトの配属はWebフロントエンドで、この4ヶ月間はReact/Reduxをゴリゴリと書いてきました。 今回はアドベントカレンダーの担当をいただいたので、学んできたことを生かしてWebを作ってみます。 dwango.co.jpをリメイクする dwango.co.jp ちょっと1からWebを作るのは荷が重かったので、dwangoの年代を感じる伝統のあるHPをReactで作り直してみました。 こんな感じです。 dwango-remake まあ、ほとんど同じデザインで作ったので、見た目自体はさほど変わりません。 変わったのは

    dwango.co.jpをReact/TypeScript/Storybookでリメイクしてみた。 - Qiita
    yoheimuta
    yoheimuta 2018/12/09
  • 【型レベルWeb DSL】 Servantの紹介

    Note 2018-07-28: 最新の lts-12.2 で動くようにサンプルコードを修正しました。 Haskellは型の表現力がとても高い言語です。 型をうまく使えば意図しないプログラムがコンパイルできないように設計することが出来ます。ServantはWebアプリがどのように振る舞うかを型で設計するためのDSLです。APIと対応した型を作ることで間違いが少なくなるだけでなく様々なボイラープレートを型から生成することも出来ます。特殊な外部ファイル等は必要無く全てHaskellの文法で完結します。まさに型の表現力が高いHaskellでしか作れないライブラリです。 Servantの特徴としてチュートリアルでは以下の4つが挙げられています。 concision (簡潔である) flexibility (汎用的・柔軟性がある) separatation of concerns (関心の分離) t

    【型レベルWeb DSL】 Servantの紹介
    yoheimuta
    yoheimuta 2018/12/07
  • Swiftで複雑なモーダルの状態遷移をステートマシンで実装した - Qiita

    これはYahoo! JAPAN 18 新卒 Advent Calendar 2018の1日目の記事です! Yahoo! JAPAN の新卒1年目が有志で行っているアドベントカレンダーです! 次回は @cagpie さんによる「必ず押さえたい、JavaScript開発の大技小技」です。 自分は今、業務でiOSアプリ開発を担当しており、そこで設計&導入したステートマシンについて内容をまとめたいと思います。 実装するサンプルのモーダル 今回はこのような状態遷移図を実装してみます。 ステートマシンの実装 Swiftでステートマシンの実装は様々な方が既にされているため、参考にしつつ以下のものを使いました。 import Foundation // MARK: - Transition struct Transition<S, E> { let from: S let to: S let by: E

    Swiftで複雑なモーダルの状態遷移をステートマシンで実装した - Qiita
    yoheimuta
    yoheimuta 2018/12/01
  • Swiftのエラーハンドリングはなぜ最先端なのか - Qiita

    Swiftのエラーハンドリングは他のメジャーなプログラミング言語のどれとも異なる新しい仕様を持っています。特に、検査例外を持っているのですが、これはJavaで採用された以降はほとんどの言語で採用されていないため、現代では否定されている過去の間違いだったと広く認識されていると思います。そのため、Swiftユーザーで無い人は、検査例外という言葉をみた瞬間に興味を失ってしまうため、その詳細がなかなか世の中に伝わっていないと感じています。一方、私はこんなSwiftのエラーハンドリングをとても気に入っていて、様々な言語の進化の歴史を踏まえた産まれた最も優れた最先端の仕様だと思っています。この記事ではその考えを説明します。 Javaのエラーハンドリング Javaは検査例外を持っています。これにより、あるメソッドがエラーを送出するかどうかを関数のシグネチャとして静的に表明できます。 // 検査例外の例

    Swiftのエラーハンドリングはなぜ最先端なのか - Qiita
    yoheimuta
    yoheimuta 2018/11/26