タグ

pythonに関するHHRのブックマーク (74)

  • LangChain で社内チャットボット作ってみた

    こんにちは、クラウドエース SRE ディビジョン所属の茜です。 今回は、現在最も普及している対話型 AI サービスである ChatGPT で使用されているモデルと、LLM を使ったアプリケーション開発に特化したライブラリである LangChain を用いて社内向けのチャットボットを作成します。 ターゲット 任意のデータを元に回答を行うチャットボットを作成したい方 任意のデータを元に回答させる仕組みを知りたい方 ChatGPT とは ChatGPT とは、ユーザーが入力した質問に対して、まるで人間のように自然な対話形式でAIが答えるチャットサービスです。2022 年 11 月に公開されて以来、回答精度の高さが話題となり、利用者が急増しています。 人工知能の研究開発機関「OpenAI」により開発されました。 執筆時点では、GPT-3.5、GPT-4 という大規模言語モデル (LLM) が使用さ

    LangChain で社内チャットボット作ってみた
    HHR
    HHR 2024/02/12
  • OpenInterpreter / ついにAIがガチのアシスタントに!これは凄い、というか凄すぎる|shi3z

    凄いものが出てきてしまった。 ChatGPTの「Code Interpreter」が話題になったが、あれはあくまでクラウド上で動いているだけ。それを模してローカルで動作するようになった「Open Interpreter」は、衝撃的な成果である。 Open Interpreterのインストールは簡単。コマンド一発だ $ pip install open-interpreter起動も簡単 $ interpreter -yこれだけでOK。 あとはなんでもやってくれる。 たとえばどんなことができるのかというと、「AppleとMetaの株価の推移をグラフ化してくれ」と言うとネットから自動的に情報をとってきてPythonコード書いてグラフをプロットしてくれる。 凄いのは、ローカルで動くのでたとえばApplescriptを使ってmacOSで動いているアプリを直接起動したり操作したりできる。「Keynot

    OpenInterpreter / ついにAIがガチのアシスタントに!これは凄い、というか凄すぎる|shi3z
  • [python] まだmockで消耗してるの?mockを理解するための3つのポイント

    隣の席の人がテスト強化週間とか抜かしていたので自分もちゃんと理解するために なるべくわかりやすく まとめてみようと思います。 この記事は 2015 tech-yuruyuru アドベントカレンダー - 15日目の記事です。 2015 tech-yuruyuru アドベントカレンダー (2015/12/01 00:00〜)# 2015 #tech-yuruyuru アドベントカレンダー #tech-yuruyuru のアドベントカレンダーです。 テーマは特に決まっていません。好きなことを書いてください。 * 参加したい日の参加枠に参加登録してください * 2 日以上参加したい場合は、フィードで宣言してください ## カレンダー 1. @pjxiao: VPC のプライベートサブネットについて解説 2. @pjxiao: mDNS を使いローカルマシン内の仮想環境に接続する 3. @pjxia

    [python] まだmockで消耗してるの?mockを理解するための3つのポイント
    HHR
    HHR 2023/08/15
    MagicMockの構造 mock.patch('__main__.hoge')な使い方 時刻のpatch
  • Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる

    Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる 概要 Pythonのテストライブラリといえばpytestが一般的です。 Python標準のuniitestとは異なり、クラスベースではなく関数ベースでテストコードを記述することが一般的ですが、fixture,conftest,parametrizeを理解すると一気に世界が変わり、テスト体験が圧倒的に向上するため、これらの実装方法を紹介します。 リポジトリ 記事の説明に使用しているサンプルのテスト実装は、以下のリポジトリです。 想定読者 PythonやGitの基的な使い方を理解している方を想定しているため、基的な用語説明は省略しています。 環境 エンジニアの利用率の高いmacOSを前提として説明していますので、その他の環境の方は随時読み替えてください。 開

    Python(pytest)でテスト書くならfixture,conftest,parametrizeを理解すると世界が一気に変わる
  • pytest:フィクスチャ(fixture)の使い方 - Qiita

    $ python -m unittest F ====================================================================== FAIL: test_one (test_dict.TestUnitTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/gaizaku/Develop/pytest_learning/test_dict.py", line 12, in test_one assert dict1 == dict2 AssertionError ------------------------------------------

    pytest:フィクスチャ(fixture)の使い方 - Qiita
    HHR
    HHR 2023/08/09
    fixture conftest.py
  • pytest, mock, patchについて整理したい

    pytest、unittest.mock.patchらへんでハマっていたのでメモ。 整理したかったこと 同じ機能で、書き方が何種類もあること 引数の使い分け 注: このページでは同じものを別の名前で指しているかもしれないです(例:package, module, library という単語は同じものを指すことがある) テストモジュールについて unittest ... Pythonビルトインのテストpackage pytest ... 3rd partyのテストpackage。unittestよりよく使われていて主流らしい unittestをそのまま使える importしなくても使える(pytest.xxxを使わないとき) mock について オブジェクト(何でも)を自由に置き換えるもの unittest.mock ... unittestのモジュール pytest-mock ... py

    pytest, mock, patchについて整理したい
    HHR
    HHR 2023/08/08
    pytestはunittestをそのまま使えるのでunittest.mockがよく使われている
  • How to mock nested / multiple layers of return objects in python

    I'm currently struggling to find a good way of mocking multiple layers / nested return values. In other words, I want to return a magic mock that in turn returns a magic mock with it's own set return values. I'm finding this relatively cumbersome and am looking for a more elegant and maintainable solution. I'm trying to test the following code efficiently. the URL returns a json string that needs

    How to mock nested / multiple layers of return objects in python
    HHR
    HHR 2023/08/08
    mockオブジェクトはmock先が何であれ構造化されない。callする順番にmock_urlopen.return_value.read.return_value.decode.return_valueのようにreturn指定する
  • What is the difference between mock.patch.object() and mock.patch()

    I am trying to understand the difference between these two approaches of mocking a method. Could someone please help distinguish them? For this example, I use the passlib library. from passlib.context import CryptContext from unittest import mock with mock.patch.object(CryptContext, 'verify', return_value=True) as foo1: mycc = CryptContext(schemes='bcrypt_sha256') mypass = mycc.encrypt('test') ass

    What is the difference between mock.patch.object() and mock.patch()
    HHR
    HHR 2023/08/08
    mockのpatch.object()とmock.patch()の違い。あまり考えなくても良さそう
  • Pythonがグローバルインタプリタロックの解消へ、マルチスレッド処理の高速化実現

    Python Software Foundationのステアリングカウンシル(Steering Council)は、Pythonのグローバルインタプリタロック(Global Interpreter Lock)を解消する方向で開発を進めていくことを明らかにしました。 グローバルインタプリタロックとは? グローバルインタプリタロックとは、その名前が示すとおりインタープリタ全体で1つのロックを持つことです。 これによりシングルスレッドのプログラムにおいては細かなロック制御が不要となって速度の向上がはかれる一方、マルチスレッドの平行性は制限されるという欠点があります。 また、スレッドセーフではないC言語などによるライブラリとの結合が容易となっています。 Pythonの標準実装であるCPythonでは、以前からグローバルインタプリタロックが採用されていました。 グローバルインタプリタロックを解消する

    Pythonがグローバルインタプリタロックの解消へ、マルチスレッド処理の高速化実現
    HHR
    HHR 2023/08/03
    マ?
  • Poetryをサクッと使い始めてみる - Qiita

    はじめに 以前、pyenvとpyenv-virtualenvの自分流使い方という記事を書きました。その終わりの部分で「pyenv-virtualenv+pipをpoetryで置き換えられるんじゃないかな」と書いていたのですが、実際に試してみた結果をご紹介したいと思います。結論から言うと、pyenv-virtualenvとpipは使わなくなりました(笑) Poetryとは PoetryはPythonのパッケージマネージャの一つです。v1.0になったのが2019年末なのでまだまだ新しいツールです。pipと同じようにパッケージをpypiなどからダウンロードしてきてインストールすることができますが、それに加えて次のようなこともできます。 パッケージ管理ファイルの生成・変更 インストールされているパッケージのアップデート プロジェクトごとの仮想環境のセットアップ などなど... 他の言語だと、npm

    Poetryをサクッと使い始めてみる - Qiita
    HHR
    HHR 2023/07/19
    package manager
  • [Python] asyncioに入門してみたメモ - Qiita

    asyncioって? asyncio は async/await 構文を使い 並行処理の コードを書くためのライブラリです。 asyncio は、高性能なネットワークとウェブサーバ、データベース接続ライブラリ、分散タスクキューなどの複数の非同期 Python フレームワークの基盤として使われています。 asyncio --- 非同期 I/O — Python 3.9.0 ドキュメント import asyncio async def main(): print('Hello ...') await asyncio.sleep(1) print('... World!') # Python 3.7+ asyncio.run(main()) なにこれ、C#の async/await みたいなノリじゃないですか…。 Python使いなのに、恥ずかしながらこの前まで知りませんでした。 たまにC#の

    [Python] asyncioに入門してみたメモ - Qiita
    HHR
    HHR 2023/06/27
    深煎り危険。ライブラリ作成者なら分からなくもないが一般利用ではpysparkなどを使ったほうが後々のトラブル防止になりそう。
  • What does -> mean in Python function definitions?

    HHR
    HHR 2023/06/12
    method定義のアロー演算子は単なる戻り値の型以上にいろいろできる。
  • Python(とGo)で複数プロセスから一つのファイルにログを書き込んでいいのか?

    概要 マルチプロセスでレスポンスの処理を行う(1リクエストにつき1プロセスがレスポンスの処理を行う)PythonのWEBフレームワーク[1]でAPIサーバーを実装している際、各プロセスから一つのファイルにログを書き出しても、行が上書きされる・順番が前後するといった不整合がおきないのか、という疑問がわきました。(ファイルは各プロセスで独立にopenするものとします。) Pythonのロギングに関する公式ドキュメントには、「複数プロセスから1ファイルへのロギングはサポートしていないから別の方法で工夫しろ」と書いてあるのですが、別の記事では「書き込むログの長さが短ければ不整合はおきない」と記述されていたり、よくわからなくなったので自分で調べてみました。 結論としては、Python標準のloggingモジュールでログの長さが2,147,479,552(=0x7ffff000)バイト以下なら「原子性

    Python(とGo)で複数プロセスから一つのファイルにログを書き込んでいいのか?
  • How to print a number using commas as thousands separators

    HHR
    HHR 2022/07/31
    f'{value:,}' javaの123_456_789みたいにコードの記載時に出来ないのかな?
  • Ansible が利用する Python 実行環境 - 赤帽エンジニアブログ

    みなさんこんにちは。レッドハットの杉村です。Ansible のテクニカルサポートをしています。 Ansible Engine や Ansible Tower は Python で書かれています。今回の記事では、Python の実行環境についてお話したいと思います。 Python は 2.7 と 3 で互換性がありません。この違いがよく問題となります。 RHEL に標準搭載されている Python RHEL 7 では Python 2.7.5 が標準搭載されていますが、RHEL 8 にはありません。/usr/libexec/platform-python として 3.6.8 がインストールされているものの、これは OS の管理に使うことが想定されているものです。 RHEL 7 で利用できる Python RHEL 7 では標準搭載されている 2.7.5 以外にも、RHSCL (Red Hat

    Ansible が利用する Python 実行環境 - 赤帽エンジニアブログ
    HHR
    HHR 2022/05/30
    redhatがansible推しなのでよくまとまっている。centos7,8毎に利用できるpythonとansibleのまとめ
  • 「PyScript」はJavaScriptのようにPythonコードをHTML内に記述して実行可能、Anacondaがオープンソースで公開

    「PyScript」はJavaScriptのようにPythonコードをHTML内に記述して実行可能、Anacondaがオープンソースで公開 Pythonの主要なディストリビューション「Anaconda」などを提供しているAnaconda社は、HTML文書の中にJavaScriptと同じようにPythonのコードを記述し、実行可能にする「PyScript」をオープンソースで公開しました。 Did you hear the news from PyCon!? We are thrilled to introduce PyScript, a framework that allows users to create rich Python applications IN THE BROWSER using a mix of Python with standard HTML! Head to h

    「PyScript」はJavaScriptのようにPythonコードをHTML内に記述して実行可能、Anacondaがオープンソースで公開
  • PySparkデータ操作 - Qiita

    記事は、PySparkの特徴とデータ操作をまとめた記事です。 PySparkについて PySpark(Spark)の特徴 ファイルの入出力 入力:単一ファイルでも可 出力:出力ファイル名は付与が不可(フォルダ名のみ指定可能)。指定したフォルダの直下に複数ファイルで出力。 遅延評価 ファイル出力時 or 結果出力時に処理が実行 通常は実行計画のみが計算 Partitioning と Bucketing PySparkの操作において重要なApache Hiveの概念について。 Partitioning: ファイルの出力先をフォルダごとに分けること。読み込むファイルの範囲を制限できる。 Bucketing: ファイル内にて、ハッシュ関数によりデータを再分割すること。効率的に読み込むことができる。 PartitioningとBucketingの詳細についてはこちら(英語)をご覧ください。 計算リ

    PySparkデータ操作 - Qiita
    HHR
    HHR 2022/04/04
    *でワイルドカード読み込み。リストを渡して複数読み込み。unix_timestamp to_timestamp date_format etc...
  • きれいなPythonプログラミング(パイソニックなコードを書こう)を読んでみた - Qiita

    はじめに 日頃、Pythonを使う機会があるのですが、「もう一歩詳しくなり、中級者を目指したい!」という思いから、2022/2/15に発売された書籍「きれいなPythonプログラミング ~クリーンなコードを書くための最適な方法」を読みました。 特に、第6章にある「パイソニックなコードを書こう」が非常に勉強になったので自分なりの解釈/調査結果を含めてメモを残しておきます。 ※解釈が誤っている箇所もあるかと思います。誤りがあればご指摘いただけると幸いです。 誤用の多い構文 Python以外の言語を使ったことがある人は、その言語と同じ考え方/手法でコードを書くかもしれません。 Pythonにおける標準的なアプローチを学ぶことで時間と労力を削減することができます。 ループ処理ではrange()ではなくenumerateを使う 慣習的にrange(len())とインデックス番号でループを回すのは単純

    きれいなPythonプログラミング(パイソニックなコードを書こう)を読んでみた - Qiita
    HHR
    HHR 2022/03/24
  • Pythonでimportの対象ディレクトリのパスを確認・追加(sys.pathなど) | note.nkmk.me

    Pythonのimport文で標準ライブラリやpipでインストールしたパッケージ、自作のパッケージなどをインポートするときに探索されるパス(ディレクトリ)をモジュール検索パス(Module Search Path)と呼ぶ。 6. モジュール - モジュール検索パス — Python 3.11.3 ドキュメント 自作のパッケージやモジュールをインポートしたい場合は正しく設定しておく必要がある。 ここではimportの対象となるディレクトリのパスであるモジュール検索パスを確認したり新たに追加したりする方法を説明する。

    Pythonでimportの対象ディレクトリのパスを確認・追加(sys.pathなど) | note.nkmk.me
    HHR
    HHR 2022/02/15
    sys.path PYTHONPATH
  • macOS 12.3 MontereyでPython 2.7が削除されるのに伴い、AlfredやPopClip、xbar(BitBar)でPythonを利用したプラグインが動かなくなっているので注意を。

    macOS 12.3 MontereyでPython2が削除されるのに伴い、AlfredやPopClip、xbar(旧BitBar)でPythonを利用したワークフローやプラグインが動かなくなっているすです。詳細は以下から。 Appleは2019年にリリースしたmacOS 10.15 CatalinaからPython 2.xの使用を非推奨とし、将来的にはスクリプト言語のランタイムを同梱せずダウンロード方式にすると発表、先日リリースされた「macOS 12.3 Monterey Beta」ではPython 2.xがmacOSに同梱されなくなることが発表されていますが、これに伴い、macOS 12.3では一部のアプリでPython2を利用したプラグイン(AlfredではWorkflow)が動かなくなっているそうです。 Python Deprecations Python 2.7 was rem

    macOS 12.3 MontereyでPython 2.7が削除されるのに伴い、AlfredやPopClip、xbar(BitBar)でPythonを利用したプラグインが動かなくなっているので注意を。
    HHR
    HHR 2022/02/06