Python関連のことを調べてみた

Python関連のことを調べてみた
目次

GPT-4V(GPT-4 Turbo with Vision)をPythonから使う

## はじめに

Azure OpenAI ServiceでもGPT-4Vが使えるようになったとのことで早速試してみました。なおセットアップは以下の記事が参考になりました。

https://qiita.com/kccs_haruki-nukumi/items/16aca479532a53c11034#2-%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E4%BD%9C%E6%88%90%E3%83%A2%E3%83%87%E3%83%AB%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4–azure-openai-service

## 早速アクセスしてみる

まずは[Microsoftのチュートリアル](https://learn.microsoft.com/ja-jp/azure/ai-services/openai/reference#example-request-2)を見てみます。

“`bash
curl \
https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deplo

元記事を表示

GPTのストリーム機能を使いたい方へ(その1)

# Outline
– [前書き](#前書き)
– [本編](#本編)
– [まず動作イメージから](#まず動作イメージから)
– [先に結論を](#先に結論を)
– [ストリームって何が嬉しいの?](#ストリームって何が嬉しいの)

# 前書き
本記事はOpenAIの各モデルで利用できるストリーミングを以下の構成で実現する方法について記載しています。
以下のようなニーズにお応えできると嬉しいです!

– OpenAIのストリーム機能について
– ストリームによるメリットを知りたい
– Node.jsからじゃなく、Python([openai](https://pypi.org/project/openai/))からストリームを実現したい
– そもそもストリームって何?
– FetchとEventSourceの違いを知りたい

# 本編
– **GPTのストリーム機能を使いたい方へ(その1)**
ストリーミングの動作イメージや、メリットについて解説していきます。(**いまココ!**)

– **GPTのストリーム機能を使いたい方へ(そ

元記事を表示

ChatGPTとTwitter APIを組込んだPythonプログラムで自動投稿する

今回はTwitterに投稿するのにChatGPTに投稿文章(プロンプト)を書かせ、Twitterに自動投稿させるプログラムを開発します。

まずはTwitter APIを[ここから取得します。](https://developer.twitter.com/)
APIキーには以下の5種類があります。
API Key
API Key Secret
Access Token
Access Token Secret
Bearer Token
【Sign up for Free Account】から取得して下さい。
####1.ChatGPTにTweet文を書かせるコード
“`python
import openai
import os

openai.aip_key = os.environ[“OPENAI_API_KEY”]

def make_tweet():
request = “私はAI開発企業を経営しています。私に代わってTwitterに投稿するツイートを140以内で作成して下さい。\n\nツイート作成の際は以下の文章を参考にして下さい。\n\n”

tweet1

元記事を表示

Numbaは再帰関数もコンパイル結果のキャッシュやAOT (事前) コンパイルできる

## はじめに

Numba で再帰関数を高速化する場合、コンパイル結果のキャッシュやAOT(事前)コンパイルができず、プログラム実行の度にコンパイル時間がとられるという制限があるらしい。

ところが挙動を試していたらキャッシュは特に工夫なくともできていたし、AOTは少しの工夫で成功してしまったので紹介する。

## コンパイル結果のキャッシュ

### 方法
特に工夫せず `cache=True` するだけでできた。

– `@jit` に型指定しない場合 (初回呼び出し時にコンパイル)

“`Python
from numba import jit

# 再帰関数に @jit、cache=True
@jit(nopython=True, cache=True)
def rec_fib(n):
if n == 0 or n == 1:
return n
return rec_fib(n – 1) + rec_fib(n – 2)

# 初回呼び出しでコンパイル or キャッシュ読込み
print(rec_fib(6))
“`

– `@j

元記事を表示

Solved “Cannot Import Name Multihostdsn from pydantic.networks”

In this post, we’ll explore various reasons behind this import error. I’ll walk you through the causes of this error message and how to fix it.

Solved “Cannot Import Name Multihostdsn from pydantic.networks”

元記事を表示

Azure OpenAI Service ワークショップに参加したので復習してみる(データを一括登録するHTTP Trigger)

# はじめに
前回Azure Open AIによって、ベクター化したデータもインデックスに登録できるようになりました。

前回の記事

https://qiita.com/usomaru/items/6c4e9678b41756190ac2

# この記事でやること

下の図の赤枠のところです。
Cosmos DBにデータを登録するFunctionsを作成します。

今回のFunctionsが完成すると、HTTP Triggerを使ってCosmos DBにデータの登録ができ、そこから前回までに実装したCosmos DB Triggerによってインデックスにデータの登録までができるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201826/4613cd74-02cc-7965-f680-f694eba8eaa5.png)

# 関数を追加する

現在のフォルダに関数を追加しようとしたところ、3通りの方法があったのでメモです。(試したのは2通り)

Visual Stu

元記事を表示

Python学習備忘録② Anacondaを使わず、ScrapyでLaravelで作った自分のポートフォリオをモルモットにしてスクレイピングしてみた(補足編)

____
※本Qiita は

(1)「**初心者からちゃんとしたプロになるPython基礎入門 大津 真・田中賢一郎 共著 MdN社**」
(2)「**確かな力が身につくPython「超」入門 鎌田正浩 著 SB Creative社**」👈個人的にはPythonの最初の1冊として最適でした
(3)https://qiita.com/python_academia/items/62aefbf4e373cd2aa496

を主に利用した学習をもとに作成しました。(なお、私は(1)の途中で一旦、tkinterって結局何なん??(´д`)?? ⇒(2)を読んでから(1)あぁ(・∀・)みたいな感じでした。「~入門」にも甘辛が存在するようです。)
___

なお以下、Anaconda(※3)を使わずに

Visual Studio CodeのみでScrapyを使用してみた感想等

を記述しました。少し長くなったため、本編(A)・(B)と補足編((C)~(F))に分けました。
 また、Pythonでしか使わないような単語を使わないと、説明がそれこそニシキヘビが如く超長くなりそうなので、でき

元記事を表示

Python学習備忘録② Anacondaを使わず、ScrapyでLaravelで作った自分のポートフォリオをモルモットにしてスクレイピングしてみた(本編)

____
※本Qiita は

(1)「**初心者からちゃんとしたプロになるPython基礎入門 大津 真・田中賢一郎 共著 MdN社**」
(2)「**確かな力が身につくPython「超」入門 鎌田正浩 著 SB Creative社**」👈個人的にはPythonの最初の1冊として最適でした
(3)https://qiita.com/python_academia/items/62aefbf4e373cd2aa496

を主に利用した学習をもとに作成しました。(なお、私は(1)の途中で一旦、tkinterって結局何なん??(´д`)?? ⇒(2)を読んでから(1)あぁ(・∀・)みたいな感じでした。「~入門」にも甘辛が存在するようです。)
___

なお以下、Anaconda(※3)を使わずに

Visual Studio CodeのみでScrapyを使用する方法

を記述しました。少し長くなったため、本編(A)・(B)と補足編((C)~(F))に分けましたまた、Pythonでしか使わないような単語を使わないと、説明がそれこそニシキヘビが如く超長くなりそうなので、できるだけ本Qi

元記事を表示

生成AIを活用した競馬の次世代予想方法

# はじめに
はじめましての方も多いかもしれないですが、インティメート・マージャーで社長をやらせていただいております簗島です。今年は開発本部でアドベントカレンダーをやることになったので僕も書いてみることにしました。本業と全く関係ない内容にあるのですが、タイトルは他の人と比べるとちょっとふわふわめな内容で「生成AIを活用した競馬の次世代予想方法」です。

# どうしてこの記事を書いているか
元々データ解析や機械学習のアルゴリズムを作成するのを趣味としてやっていて、その一環で10年以上前から競馬の予想アルゴリズムを作成しています。最近ではnetkeibaというサイトで開催されている[AI競馬予想マスターズ](https://yoso.sp.netkeiba.com/masters/ai2023/?rf=orepro)に「[生成系競馬予想](https://yoso.sp.netkeiba.com/masters/ai2023/profile.html?id=17218442)」という名前で出させていただいます。この記事が出た翌々日の有馬記念の日がこの大会の最終日となっており、この記事の中で

元記事を表示

CloudWatchのログメッセージをまとめて取得するPythonコード

# できること

– StepFunctionsのMap処理のような、1日の中で複数回起動したAWSサービスのログをまとめて取得することができる。
– 今回は以下のドキュメントのMap処理を実行したときのtest_invoke_2のprintをlogger.infoに変えたものを取得する。
– https://qiita.com/komata/items/b25159ff9d9915c64c83
– 24時間以内のログのみが取得できる。

# 全体ソースコード

“`python
import os
import boto3
from logging import getLogger

logger = getLogger(__name__)

def lambda_handler(event, context):

logger.setLevel(os.getenv(“LOG_LEVEL”, “INFO”))
log_group_name = event[“LogGroupName”] # CloudWatchのロググループを指定する

元記事を表示

[LINE WORKS] カレンダーで「予定あり」となっている時間帯をPythonで抽出する

# はじめに
LINE WORKSのカレンダーに登録された予定をAPIを通して取得する方法についての紹介です。

指定した期間内の予定一覧を取得して、そのユーザーのどの時間帯に予定が入っているのかをPythonを使ってチェックしてみます。

# 利用するAPI
以下のAPIで、指定したユーザーの予定のリストを取得します。

– [基本カレンダーの予定リストの取得](https://developers.worksmobile.com/jp/docs/calendar-default-event-user-list )

注意点として、**繰り返し予定は1つにまとめられてしまう**ため、予定ありの時間帯を全て取るためには繰り返し予定を処理する必要があります。

# 繰り返し予定の扱い
繰り返し予定の情報にある `recurrence` に繰返しのルールが格納されており、これは iCalendarの [RRULE (Recurrence Rule)](https://dateutil.readthedocs.io/en/stable/rrule.html) の形式が使われています。

この

元記事を表示

ChatGPTとPythonで学ぶ アソシエーションルールマイニング

皆さんこんにちは。今日も引き続きChatGPT先生をお招きして、「ChatGPTとPythonで学ぶ アソシエーションルールマイニング」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。

### **assistant**:

こんにちは!お呼びいただきありがとうございます。アソシエーションルールマイニングについて一緒に学んでいきましょう。

アソシエーションルールマイニングは、大量のデータから規則を見つけ出すために使用されるデータマイニングの一つの技術です。特に、頻繁なアイテムセット、すなわち一緒に購入される商品の組み合わせを見つけるのによく使われます。

Pythonでは、mlxtendというライブラリを使用してアソシエーションルールを抽出することが可能です。

### **user**:

それでは早速、アソシエーションルールマイニングについて学ぶためのPythonコードを書いてください。その際に、型ヒントも導入してください。コード中に日本語での説明も可能な限り詳しくお願いします。Pythonのコーディング規約PEP8

元記事を表示

聞こえない人でもBPMランニングがしたい!

# 導入
 本作品は、聞こえないランナーのためのペーサーです。
Micro:bitが2つのLEDを交互に定期的に点滅するという単純なシステムですが、聞こえないランナーには少しは効果がある(と信じたい)考えますので、本記事に報告します。

# プロジェクトの背景
 わたしはランニングが趣味です。走るとき、イヤホンをつけて颯爽と走り抜けるランナーをときどき見かけます。スマホやウォークマンから流れる曲のリズムに合わせて、テンポよく一定のペースで走る練習です。これをBPMランニングといいます。聞こえない私は、音楽を聴くことができません。当然、BPMランニングをやりたくでもできません。そこで、リズムを可視化したランニングのペーサーを作ってみました。

 ペーサーの設計においては、以下のwebを参考にしました。

https://www.sony.jp/msc/owner/recommend/season/running_wm_lp/contents02.html

 本作品は、160 BPMと165 BPMのペースにしています。つまり、1分間に左右で合計160歩と165歩で走ることができます。

元記事を表示

Python/C API で 素朴な二分探索木を書いてみる

年末が近づくと [Python/C API](https://docs.python.org/ja/3/c-api/index.html) を無駄に使いたくなる衝動は今年も無事に(?)発生。なので素朴な[二分探索木](https://ja.wikipedia.org/wiki/%E4%BA%8C%E5%88%86%E6%8E%A2%E7%B4%A2%E6%9C%A8)でも書いてみましょう。

“`python
from collections.abc import Collection, Iterator
from typing import TypeVar

T = TypeVar(‘T’)

class BinarySearchTree(Collection[T]):

“`

# まずは Pure Python で書き下す
## Poetry new で pyproject.toml
vim a.py で雑に始めて、コードが育ってきたら setup.py, requirements.txt を追加、でも動きはするのですが。 Poetry に新プロジェクトのスケ

元記事を表示

mayaのブーリアンで虚無が生まれるので雑な奴を自作

maya2024からブーリアンが改修されたようなのですが、
まだ2022をメインでやってるもので

ブーリアンが難しい

コツというか、未だその辺をつかめていないので
ブーリアン実行!ってやると大体虚無が生まれるんですよね。

時間がない時だと、えーあーもういいやブーリアンあきらめよう!
ってなってしまいがち。

今回もそうなってしまいましたが、処理する数が多かったので
**メッシュがスフィアの中に収まるようにスフィアの外側にはみ出た部分を何とかする**

というパワー な処理を作ってなんとかしました。

設計

ターゲットはこんな感じ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/363da47b-e5f4-e84d-6449-a0b420a82b05.png)

スフィア(切り取りオブジェクト)から

**外にはみ出てるメッシュを削除したい。**

または

**外にはみ出てるメッシュを内側に押し込めたい**

パッと思いついたのはshrinkWrapですが、

元記事を表示

Milk-v duo用ビジュアルプログラミング環境を妄想してMind+を使ってみる。Raspberry pi pico編

## はじめに
秋葉原ロボット部の有志で、milk-v duoを購入し、個々人が様々な実験を行って、勉強会内で報告しています。

Milk-v duoは9ドルのrisc-vコンピュータとして知られています。
ハードウェアは以下の通りです。

1. CPUはCVITEKのCV1800B (C906@1Ghz + C906@700MHz)
1. 最高1 GHzで動作するデュアルRV64コア
1. 64 MBのラム
1. オプションのアドオンボードを接続すると10/100Mbpsの速度でイーサーネットに接続可能

pinpongドライバ対応のボードのプログラミングにMind+を使うことができます。
https://mindplus.cc/en.html
今回は、Raspberry pi picoのMicroPythonプログラミングをMind+を使って、行います。

## Raspberry pi picoにUF2ファイルをドラッグ&ドロップ
Raspberry pi picoでMicroPythonを使用するには、事前に「rp2-pico-latest.uf2」を導入する必要があります。

元記事を表示

テストエンジニアはFlutterの自動テストをPatrolでやったら面白そうと思った。

全国一千万人の自動テストエンジニアの皆さま、はじめまして。
皆さん、自動テストしてますか?
はじめまして、viviONのSETエンジニアのしたっぱです。

# はじめに
viviONでは一部のアプリをFlutterで開発しています。
Flutterで作られたアプリの自動テストのやり方を考えている中で、困ったことが結構あったので、お勉強の雑記として残していきます。

# 誰に向けてるのか
・Flutterのでのテスト実装で困ってる人
・appiumでFlutterのアプリを自動テストするのに限界を感じている人
・SETエンジニアが何で困ってるのか知りたい悪趣味な人(指差して笑いたい人)

# Flutterアプリの自動テストの現状
近年Flutterの自動テスト状況に関してまとめてくれている文章の中では、日本語の文献だとMagicPod社が提供している[『E2EテストのためのFlutterアプリ実装ガイドライン』] がアツいです。
前記文献に於いてはappiumで行うE2Eテストに重きが置かれています。
実際、自分もリリースモードでビルドされたアプリに対してのappiumで自動テストの実

元記事を表示

Airtestの複数端末同時実行環境を整える

# はじめに
https://qiita.com/s_noza/items/83f905d0b44750aac9b5

上記にて紹介されているテスト自動化の実行環境において
テスト用のマシンと単一の端末で運用されているため複数のテストを実行する際に時間がかかるという課題がありました。
そこでiOS,Android複数端末を繋いだ際に、それぞれの端末で同時に並列でテスト実行をできるようにするために必要な処理の検討と実装を行いました。その際に必要だった修正箇所や注意事項等をまとめていきたいと思います。

# 端末IDの取得
端末が一つの場合は各種処理で省略できていた部分を、端末指定で実行する必要がでてきました。
その際に指定する端末IDの取得方法をまとめます。
### Androidの場合
“`adb devices“`を実行すると
“`
$ adb devices
List of devices attached
38241JEHN01076 device
38241JEHN08609 device
“`
この場合“`38241JEHN01076“`の部分が端末IDとなる

元記事を表示

Notion APIでWeb API操作を勉強してみた

# Web APIとは?
Web APIという用語は聞いたことがあるが、どのように利用するがわかっていないので調べてみる。

そもそもWeb APIとは何かを調べてみた。
– HTTPを使用してデータのやり取りをするAPI
– URLでリソース位置を指定
– GET、POSTなどのHTTPメソッドでデータのやり取りをする
– HTTPヘッダ、HTTPボディにデータを載せて情報の転送を行う
– 有名なWeb APIに、REST APIがある
– REST APIは、URI(URL)に対してCRUD(Create,Read,Update,Delete)操作を行う
– JSON形式でデータのやり取りすることが多い
– 認証のために、トークンが必要なことが多い

# Requestモジュールの使い方確認
今回はNotion APIを使用して、Web APIの操作を学ぶ。
以下を参考に、使用するためのインテグレーションを作成し、トークンを発行は準備済み。
[Notion API を使用してデータベースを操作する](https://zenn.dev/kou

元記事を表示

LLM × BDD でブラックボックス性を軽減した自動開発

# 実現したいこと
LLMを使ってアプリケーションの開発を行う場合、どうしてもプロセスがブラックボックスになってしまい、LLMにプロセス全体を任せるのは難しいのが現状だと思います。

そのブラックボックス性を少しでも軽減できれば、要所で人が関与しやすくなり、品質を担保しながら高速な開発ができるのではないか?と考え、少しお試しです!

※今回は、LangChain/LlamaIndexなどは使わず、OpenAI APIのみを使いました。

# 概念の補足

## 1. LLM
Large Language Model(大規模言語モデル)
大規模なテキスト群を学習しており、人に近い汎用的なタスクを遂行することができる。
ChatGPTの裏で動いているGPTなど。
例:GPT・PaLM・Claude・LLaMA

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2787945/1c21e4cf-a598-e2d4-c097-8cf6aba7fea7.png)

参考:[Beyond Words:

元記事を表示

OTHERカテゴリの最新記事