pythonのsqlitedictの使い方
概要
- pythonでdictのような使い方ができるsqliteをバックエンドにしたデータ恒久化ライブラリ
- APIからのデータ取得などで、データをキャッシュするのに便利
インストール
$ pip install sqlitedict
使い方
openaiのembeddingを保存する例
import re
from dotenv import load_dotenv
from openai import OpenAI
from sqlitedict import SqliteDict
# .envから環境変数を読み込む
load_dotenv()
client = OpenAI()
# データベースを開く
embedding_db = SqliteDict("embedding_db.sqlite")
def get_embedding(text, model="text-embedding-3-small"):
url_pattern = r"(http|ftp|https):\/\/([\w\-_]+(?:(?:\.[\w\-_]+)+))([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?"
text = re.sub(url_pattern, "<URL>", text)
if vec := embedding_db.get(text):
return vec
else:
vec = client.embeddings.create(input = [text], model=model).data[0].embedding
embedding_db[text] = vec
embedding_db.commit()
return vec