タグ

ブックマーク / dev.classmethod.jp (33)

  • [初心者向き] OpenAI APIを使ってPythonでChatGPT遊びするための最初の三歩くらい | DevelopersIO

    ChatGPT面白いですね! あんなことやこんなことできるんじゃないかと夢想して楽しんでいます。 そんなわけで、OpenAIAPIキーを発行できたんだけれども、そのあとどうすればいいの? という過去の自分のために、Pythonでの超基的な使い方をまとめておきたいと思います。 結論から言うと、 Pythonのコード15行程度でChatGPTを使ったアプリが出来上がりました! (APIキーを発行するやり方は他の記事をご参照ください) 準備 Python3でOpenAIのライブラリを使うので、pipでインストールしておきます。 pip install openai また、最小限のコードとはいえ、環境変数はハードコードしたくないので、 コマンドラインの環境変数に設定します。 export OPENAI_API_KEY="sk-xxxx" コード Pythonのコードを書いていきます。 ここに書

    [初心者向き] OpenAI APIを使ってPythonでChatGPT遊びするための最初の三歩くらい | DevelopersIO
    inurota
    inurota 2023/09/09
    良記事。
  • [OpenAI] Function callingで遊んでみたら本質が見えてきたのでまとめてみた | DevelopersIO

    ChatGPT、皆さん遊んで活用してますか!? 0613のモデルと並んで発表されたFunction callingの機能を使って遊んでみました。 「自然言語でリクエストを投げつければ内部で関数が実行されて正確な計算ができる!?」みたいな雑すぎる理解しかしていなかったので、 どんなことができるのかな?と思って試してみました。 試してみた結果、Function callingは関数を実行してくれる機能じゃない!(極論)ということがわかったので、 その辺について考察してみたいと思います。 前提として、OpenAI APIを用いたChatGPTの利用方法については基を理解しているものとしています。 具体的には、以前私が書いたこのブログの内容が何となく理解できてれば十分だと思います。 [初心者向き] OpenAI APIを使ってPythonChatGPT遊びするための最初の三歩くらい また、こち

    [OpenAI] Function callingで遊んでみたら本質が見えてきたのでまとめてみた | DevelopersIO
    inurota
    inurota 2023/09/09
  • ProxyCommandを使って踏み台(Bastion)経由で直接ssh/scpする | DevelopersIO

    自分の作業環境の作り直しをしているのですが、 たまに理解が怪しくなるので、確認ついでにここに吐き出しておこうと思います。 背景 「リモート環境にあるホストAにsshあるいはscpするためには、 踏み台(Bastion)となるホストXに一度SSHログインしないとならない」 というケース/環境はそこそこ多いと思います。 これがsshなのであればまあ、ssh X -> ssh Aとするだけなのでそこまででもありませんが、 scpだった場合は概ねこんな手順になりますよね。 まずssh XとしてホストXにログイン ホストX上でscp -p A:/path/to/datafile ~/(オプションはお好み) コピーが終わるのを待ってから、Xからログアウト scp -p X:~/datafile . コピーが終わるのを待ってssh X rm ~/datafile これで何が困るかというと、 コピー(sc

    ProxyCommandを使って踏み台(Bastion)経由で直接ssh/scpする | DevelopersIO
    inurota
    inurota 2023/02/08
  • Snowflakeの継続的なデータロード「Snowpipe」を試してみた | DevelopersIO

    こんにちは!DA(データアナリティクス)事業部 インテグレーション部の大高です。 Snowflakeには継続的にデータをロードするための仕組みとして、「Snowpipe」という機能があります。この機能をこれまで実際に触ったことがなかったので、今回は設定からデータをロードするまでを試してみました。 なお、「Snowpipe」については以下の記事でも紹介されていますので、よろしければご参照ください。 Snowpipeとは SnowpipeはSnowflakeの継続的なデータロードの仕組みです。COPYコマンドを利用した一括ロードとは異なり、ステージ上でファイルが利用できるようになったことを検知して、ファイルを継続的にロードすることができます。 Snowpipeを設定してみる 実際にどのようなものなのか、設定してみて確認したいと思います。今回はAWSの「S3イベント通知」をトリガーとしてSno

    Snowflakeの継続的なデータロード「Snowpipe」を試してみた | DevelopersIO
    inurota
    inurota 2022/12/08
  • Snowflakeでデータパイプラインを作ってみた | DevelopersIO

    こんにちは!DA(データアナリティクス)事業部 インテグレーション部の大高です。 Snowflakeでは、以下のドキュメントでも記載されている通り、Snowflakeの機能を組み合わせてデータパイプラインを作成することができます。 分類 Snowflakeの機能 今回はこのドキュメントの内容を踏まえて、実際に以下のようなイメージのデータパイプラインを作成してみたいと思います。 データの流れですが、以下のようなJSONL形式のデータがSnowpipe経由でLogテーブルに投入されてきます。 {"ticker_symbol":"ALY","sector":"ENERGY","change":-1.01,"price":88.09} {"ticker_symbol":"TBV","sector":"HEALTHCARE","change":8.62,"price":199.62} {"tick

    Snowflakeでデータパイプラインを作ってみた | DevelopersIO
    inurota
    inurota 2022/12/08
  • Apache ZeppelinコンテナとPythonでデータを可視化してみた | DevelopersIO

    データアナリティクス事業部の鈴木です。今回は、Apache Zeppelin(以下、Zeppelin)という、ウェブアプリケーションベースのノートブックを紹介します。 記事の目的 AWSの開発環境において、Zeppelinは以下のような場面で利用されています。 インタラクティブな Glue scripts(pyspark)の開発環境 Amazon Kinesis Data Analytics Studio 私はJupyter Notebookに馴染みがあるものの、Zeppelinは使ったことがありませんでした。上記のような機能を使うために、まずは自分のPCでZeppelinを練習できないかと思い、試してみました。 今回は、Zeppelinの機能をフル活用するより、まずはPythonで一般的な操作を行い、UIの操作感に慣れることを目指しました。 具体的には、Zeppelinコンテナを自分

    Apache ZeppelinコンテナとPythonでデータを可視化してみた | DevelopersIO
    inurota
    inurota 2022/09/02
  • 【書評】「仕事ではじめる機械学習」を読んで、機械学習プロジェクトの大変さを知った夏 | DevelopersIO

    どうも。DI部@大阪オフィスの玉井です。 仕事ではじめる機械学習というを読んだので、久しぶりに書籍エントリを投下します。このはとってもとってもとってもとってもとってもとっても大スキよ ダーリン I like you. ダーリン素晴らしいので、ぜひこの気持ちをみなさんに伝えたいと思いました。 このを読もうと思った理由 今後、機械学習を扱う製品やサービスが増えてくるのではないか、と思ったから 現在、私は製品サポートエンジニアとして、データ分析に関係する製品やサービス(Tableauとか)のサポートや導入を行っています。機械学習は触れたことは一切ありません。また(少なくとも現時点では)機械学習エンジニアに転向する予定もありません。 ところで、データ分析関係の製品やサービスっていうのは、それはもうすごい勢いで色々なものがリリースされています。弊社ではTableauやAlteryxといった製品

    【書評】「仕事ではじめる機械学習」を読んで、機械学習プロジェクトの大変さを知った夏 | DevelopersIO
    inurota
    inurota 2022/04/26
  • AppleScript のサンプルコード | DevelopersIO

    書いてみよう 今回はこれまでに学んだことを参考に、実際に動くスクリプトを紹介しようと思います。 アプリ起動 アプリの起動には activate コマンドを使用します。 activate コマンドはアプリが起動していなければ起動し、起動していればアプリのウィンドウを最前面に表示します。 tell application "Google Chrome" activate end tell tell application の後には起動したいアプリケーションを指定します。 ここに入る文字列は、スクリプトエディタで「用語説明」を開いた時にウィンドウのヘッダーに表示される文字列です。 (※ソース無し。これで動きました。間違えてたらごめんなさい) アプリ終了 アプリの終了には quit コマンドを使用します。 tell application "Google Chrome" quit end tell

    AppleScript のサンプルコード | DevelopersIO
    inurota
    inurota 2021/05/05
  • PythonでのDecimalで「文字列化」「精度維持」等のよくある「こうしたい」を試してみた | DevelopersIO

    はじめに 金融や会計等の高精度をする場合にPythonではDecimalの利用が好ましいのですが、用途故に利用頻度もそこまで高くなく、実際に使ってみると慣れないうちはモジュールの動作に振り回されるような感覚に陥ります。 約一ヶ月程度Decimalに振り回されつつ、どのように扱えばいいのか判ってきた範囲でまとめてみました。 Decimalを使うべきシーン 浮動小数点を交える数値及び計算が対象です。float型では正確に計算できないケースにも対応できます。 >>> float('0.3') - float('0.2') 0.09999999999999998 >>> from decimal import Decimal >>> Decimal('0.3') - Decimal('0.2') Decimal('0.1') Decimalに渡す値は文字列にすべきという点だけ気をつけましょう。fl

    PythonでのDecimalで「文字列化」「精度維持」等のよくある「こうしたい」を試してみた | DevelopersIO
    inurota
    inurota 2021/02/16
  • jq コマンドに大きな数値を与えると丸め誤差が発生する! | DevelopersIO

    はじめに こんにちは、川原です。 ここ最近ずっと、JSON をレスポンスするAPIサーバープログラムの開発に携わっており、JSON と戯れる日々を送っています。 そうなると、JSON レスポンスの確認するために jq をよく使うことになるのですが、先日、jq 起因のとある事象にハマりましたので、その事象を共有します。 結論 まず、結論ですが、 jq に大きな数値を与えると、「丸め誤差」が発生します。 以下のように Java の Long.MAX_VALUE 値である 9223372036854775807 を jq に与えてみると、、、 >jq -V jq-1.5 >echo '{ "BigInteger": 9223372036854775807 }' | jq . { "BigInteger": 9223372036854776000 } 下4桁の部分で丸められて(切り上げられて)しま

    jq コマンドに大きな数値を与えると丸め誤差が発生する! | DevelopersIO
    inurota
    inurota 2020/01/24
    これほんとハマる。当たり前つったってやってくるデータがそうなってるんだからしょうがない。特にuniqueIDの類でよくある。
  • Jenkinsの使い勝手をよくするための見直し6点 | Developers.IO

    今回の課題 こんにちは植木和樹です。7月にserverspecを使ったChefの自動テストのエントリを書きました。 【AWS】JenkinsとserverspecでChefのテストを自動化する このエントリは初めてJenkinsを触った時に書いたので、いろいろと流儀がわかっていませんでした。その後弊社にJenkinsマイスターの渡辺修司さんが入社したということで、Jenkinsの設定について見てもらいました。その時に次の6点を見直すよう指摘がありました。 ジョブは意味ある単位で1つにまとめるべし ジョブで実行するシェルスクリプトもgitから取得すべし EC2の起動に失敗したら後続処理を停止させるべし serverspecの実行結果はJUnit(XML)形式で出力すべし 実行結果のXMLをJenkinsで読み込んで統計グラフを出力すべし 定時実行でなくgit push hookを入れるべし

    Jenkinsの使い勝手をよくするための見直し6点 | Developers.IO
    inurota
    inurota 2019/02/05
  • [SQL]データの縦持ち、横持ちを入れ替える | DevelopersIO

    はじめに 弊社のデータ分析案件において、RedshiftにてSQLを実行してデータを抽出することが増えてまいりました。SQLはデータの抽出には強力なのですが、JavaRubyなどのプログラミング言語と比べると独特であることも事実です。 例えば(PL/SQLなどは除いてですが) ループがない 変数に代入して次の処理に行くことができない メソッドやクラスに処理を分割できない などです。 これらの特徴からSQLでデータ抽出を行う為には、JavaRubyなどとは異なった手法を取る必要があります。そこで「JavaRubyとかでは・・・というやり方でやるのだけど、SQLではどうやるのだろう」というケースについて、シリーズ形式で何回かに分けて取り上げたいと思います。 尚、SQLの基的な構文(select、join、group byなど)については説明しません。またデータベースの種類に関わらず使用

    [SQL]データの縦持ち、横持ちを入れ替える | DevelopersIO
    inurota
    inurota 2017/02/26
  • Route 53でサブドメインを別のHosted Zoneに権限委譲する | DevelopersIO

    こんにちは、菊池です。 Route53を使って管理しているドメインで、サブドメイン発行して別のHosted Zoneに権限を委譲する方法を紹介します。 ユースケース 例えば、以下のようなケースでは組織Aが管理しているexample.comから、サブドメインjp.exampleを組織Bに権限委譲しています。 組織A(委譲元) 管理ドメイン:example.com 組織B(委譲先) 管理ドメイン:jp.example.com このように、権限を委譲されることで組織Bでは自由にjp.exampleを利用することができるようになります。 AWSのマネージドDNSサービスであるRoute53で発行・運用しているドメインでも、上記のようにサブドメインを委譲することができます。企業で保有しているトップドメインを、サービスの単位などで適切に委譲していくことで、運用を分離させることができます。 やってみた

    Route 53でサブドメインを別のHosted Zoneに権限委譲する | DevelopersIO
    inurota
    inurota 2017/01/31
  • Amazon Alexaの基礎知識 | DevelopersIO

    はじめに 1月ももうすぐ終わりそうですが、僕にとってこれが2017年一発目のブログ記事となります。 2017年はAmazon Alexaが激アツだと確信したのですが、概要は把握していたものの、きちんと情報をキャッチアップ出来ていなかったため、改めてAmazon Alexaについて学びました。 基礎知識 Amazon Alexaとは、Amazonが提供する、クラウドベースの音声認識サービスです。Alexaに対応したデバイスが認識した音声はクラウドサービスに送信されます。クラウドサービスは音声をテキスト変換し、そのテキストを処理し、処理結果をデバイスに返して音声として再生されます。 Alexaが登場したのは2014年11月、Amazon Echoとして発表されました。発表時にはAmazon Echoの機能のように報道されていましたが、その後Amazon EchoはAlexaファミリーを構成する

    Amazon Alexaの基礎知識 | DevelopersIO
    inurota
    inurota 2017/01/27
  • node.jsのいろいろなモジュール17 – asyncで非同期処理のフロー制御 | DevelopersIO

    node.jsはnon-blocking処理を行うため、関数によってはプログラマの意図しない順番で処理が実行されることがあります。 次の例をみてください。プログラムの開始をconsole.logで出力後、ファイルを読み込んで内容を出力、 最後にプログラム終了をconsoke.logで出力しています。 //app.js var fs = require('fs'); console.log("start"); //ファイル読み込み fs.readFile("hello.txt","utf-8",function(err,data) { console.log(data); }); console.log("finish"); 上記プログラムを自分の環境で実行した結果は次のようになってます。 startとfinishが表示され、ファイル内容は最後に表示されています。環境によってはfinishよ

    node.jsのいろいろなモジュール17 – asyncで非同期処理のフロー制御 | DevelopersIO
    inurota
    inurota 2017/01/11
  • Amazon Echo (Alexa)の設定方法&管理画面をおさらいする #reinvent | DevelopersIO

    こんにちは、せーのです。 私のRe:InventはAWS IoTほぼ一色のRe:Inventだったわけですが、実は出張前には狙っていたセッションがありました。それは Amazon Echo。 なにせ日では売っていない & そこそこ値段する & 入力音声が英語のみ、とハードルが高く敬遠していたものの「Lambdaが繋がる」とわかってからは俄然興味を引いていました。 実際にEchoのセッションも出てきました。 これですね。現地では「Echo」というより「Alexa」という名前で呼ぶことが多かったです。なのでここでもAlexaと呼ぶことにします。かなり濃い内容なのでこれは追々ブログ化していきたいと思います。 他にも展示会場の色々な場所にAlexaがあり入力コマンドとしてアーリーアダプタにはだいぶ浸透してきているようでした。またRe:Inventでは色々なところでプレゼント企画が行われているので

    Amazon Echo (Alexa)の設定方法&管理画面をおさらいする #reinvent | DevelopersIO
    inurota
    inurota 2016/12/03
  • Amazon EC2のキーペア生成について、本来あるべき形 | DevelopersIO

    よく訓練されたアップル信者、都元です。EC2の世界にはキーペアという登録エンティティがあります。EC2サーバにSSH接続するための鍵 *1としての働きを持ちます。 暗号技術のおさらい 突然ですが、暗号の世界の技術を大きく3つとりあげ、簡単に整理しておきましょう。私の説明は正確ではないと思いますので、あわせてWikipediaあたりの説明もご参考に。 暗号:情報のヒミツを守る。詳しくは → 暗号 - Wikipedia 電子署名:ある文章を、ある人が認めた状態から改ざんされていないことを確認する。詳しくは → 電子署名 - Wikipedia 認証:通信の相手が、想定した人であること(正当性)を確認する。詳しくは → 認証 - Wikipedia 一般的に暗号というと思い浮かべるものは「共通鍵暗号方式」でしょう。代表的なところでは暗号化zipでしょうか。暗号化時と復号化時に同じパスワードを

    Amazon EC2のキーペア生成について、本来あるべき形 | DevelopersIO
    inurota
    inurota 2016/10/18
  • インターネットから直接Amazon RDS in VPCにアクセスできない時の解決方法 | DevelopersIO

    社内のデータベース管理アプリから直接アクセスしたい システム開発時やデータベースのメンテナンス時に、ローカルPCに入っている各種管理アプリを使って直接データベースにアクセスしたいことがあります。そんなときにどうやってアクセスするのかちょっとハマったので備忘録として残したいと思います。 EC2-VPC 長らくAWSの代表的なサービスであったEC2がデフォルトでしたが、今週のAWSの発表によって、仮想ネットワーク上にサーバを立てるVPCがデフォルト指定となりました。これに伴いまして、社内では実際に動作を確認してみました。 Amazon RDSはインターネットから見えるのか? Amazon RDSはインターネットから見えるのか?これをまずはしっかり確認したいと思います。ちなみに、昔からあるEC2はEC2-Classicとなり、新しいのはEC2-VPCとなりました。 EC2-Classicタイプの

    インターネットから直接Amazon RDS in VPCにアクセスできない時の解決方法 | DevelopersIO
    inurota
    inurota 2016/10/18
  • AWS再入門 Amazon RDS編 | DevelopersIO

    上記の中のRDBMS全てに加えて、クラウド時代に合わせて再設計したAuroraMySQLのフォークであるMariaDBが使用できます。 MySQL:最もシェアがあるOSSのRDBMSOracle:高いシェアがある商用RDBMSSQL Server:高いシェアがある商用RDBMSWindowsとの親和性が高い。 PostgreSQL:機能が豊富なOSSのRDBMSAuroraAWSがクラウド時代に再設計したRDBMSMySQL 5.6互換でMySQLの5倍高速と言われています。 MariaDBMySQLからフォークしたRDBMSMySQL互換。 性能向上が簡単に実施可能 Amazon RDSでは、様々なスペックのインスタンスを使用できます。最大40個のvCPUのインスタンスや244GBのメモリのインスタンスがあります。性能が不足してきたら、インスタンスのサイズを変更す

    AWS再入門 Amazon RDS編 | DevelopersIO
    inurota
    inurota 2016/09/30
  • [iOS 8] CloudKit を使ってみよう (1) 概要 | DevelopersIO

    CloudKit とは CloudKit は OS X アプリや iOS アプリで利用できる BaaS *1 です。 ユーザーの AppleID を利用して、Apple のサーバー上にあるプライベートまたはパブリックなデータベースやストレージに、データやファイルを格納することができます。格納する処理は CloudKitAPI を呼び出すだけで良いので、サーバーサイドのロジックを記述する必要はありません。どなたでも手軽に利用することができます。 利用可能な機能 認証 アセットストレージ データベース 検索 通知 利用可能な容量 1PBのアセット 10TBデータベース 1日5TBまでのアセット転送 1日50GBまでのデータベース転送 利用料金 CloudKit は無料で使いはじめることができます。詳細は発表されていませんが、制限はあるそうなので完全に無料ではなさそうです。 CloudKi

    [iOS 8] CloudKit を使ってみよう (1) 概要 | DevelopersIO
    inurota
    inurota 2016/09/03