MicroCoreは、大規模言語モデルおよびセマンティック検索 API 用の Python アダプターのコレクションで、これらのサービスと便利な方法で通信し、サービスを簡単に切り替え可能にし、ビジネス ロジックを実装の詳細から分離できるようにします。
AI アプリケーションで通常使用される機能のインターフェイスが定義されているため、アプリケーションをできるだけシンプルに保ち、アプリケーション コードを変更することなくさまざまなモデルやサービスを試すことができます。
構成を使用するだけで、テキスト補完モデルとチャット補完モデルを切り替えることもできます。
基本的な使用例は次のとおりです。
from microcore import llm
while user_msg := input ( 'Enter message: ' ):
print ( 'AI: ' + llm ( user_msg ))
PyPi パッケージとしてインストールします。
pip install ai-microcore
あるいは、 microcore
フォルダーをプロジェクト ソースのルートにコピーすることもできます。
git clone [email protected]:Nayjest/ai-microcore.git && mv ai-microcore/microcore ./ && rm -rf ai-microcore
Python 3.10 / 3.11 / 3.12
v0.28+ と v1.X の両方の OpenAI パッケージ バージョンがサポートされています。
基本的な使用には、OS 環境変数にOPENAI_API_KEY
があれば十分です。
chromadb
pip パッケージがインストールされている場合、類似性検索機能はそのまま使用できます。
マイクロコアの構成に使用できるオプションがいくつかあります。
microcore.configure(**params)
を使用します.env
ファイルを作成します。例: Basic.env、Mistral Large.env、Anthropic Claude 3 Opus.env、Gemini on Vertex AI.env、Gemini on AI Studio.envmc.configure(DOT_ENV_FILE='dev-config.ini')
利用可能な構成オプションの完全なリストについては、 microcore/config.py
も確認してください。
OpenAI API を介さずに動作するモデルの場合は、追加のパッケージをインストールする必要がある場合があります。
pip install anthropic
pip install google-generativeai
pip install vertexai
?さらに、Vertex AI を使用するには、Google Cloud CLI をインストールし、認証を構成する必要があります。
選択したトランスフォーマーと深層学習ライブラリ (PyTorch、TensorFlow、Flax など) をインストールする必要があります。
変圧器の設置を参照してください。
microcore.configure()
に引数として渡される構成オプションは、最も高い優先順位を持ちます。.env
、またはDOT_ENV_FILE
の値) の優先順位は、OS 環境変数よりも高くなります。USE_DOT_ENV
false
に設定すると、構成ファイルの読み取りが無効になります。大規模言語モデル (LLM) へのリクエストを実行します。
非同期バリアント: allm(prompt: str, **kwargs)
from microcore import *
# Will print all requests and responses to console
use_logging ()
# Basic usage
ai_response = llm ( 'What is your model name?' )
# You also may pass a list of strings as prompt
# - For chat completion models elements are treated as separate messages
# - For completion LLMs elements are treated as text lines
llm ([ '1+2' , '=' ])
llm ( '1+2=' , model = 'gpt-4' )
# To specify a message role, you can use dictionary or classes
llm ( dict ( role = 'system' , content = '1+2=' ))
# equivalent
llm ( SysMsg ( '1+2=' ))
# The returned value is a string
assert '7' == llm ([
SysMsg ( 'You are a calculator' ),
UserMsg ( '1+2=' ),
AssistantMsg ( '3' ),
UserMsg ( '3+4=' )]
). strip ()
# But it contains all fields of the LLM response in additional attributes
for i in llm ( '1+2=?' , n = 3 , temperature = 2 ). choices :
print ( 'RESPONSE:' , i . message . content )
# To use response streaming you may specify the callback function:
llm ( 'Hi there' , callback = lambda x : print ( x , end = '' ))
# Or multiple callbacks:
output = []
llm ( 'Hi there' , callbacks = [
lambda x : print ( x , end = '' ),
lambda x : output . append ( x ),
])
パラメータを使用してプロンプト テンプレートをレンダリングします。
フル機能の Jinja2 テンプレートがデフォルトで使用されます。
関連する構成オプション:
from microcore import configure
configure (
# 'tpl' folder in current working directory by default
PROMPT_TEMPLATES_PATH = 'my_templates_folder'
)
類似検索
最も類似したテキストを検索する
テキストのコレクションを返す
テキストと関連メタデータを埋め込みデータベースに保存する
複数のテキストと関連メタデータを埋め込みデータベースに保存する
コレクションをクリアする
LLM Microcore は、OpenAI API を備えたすべてのモデルと API プロバイダーをサポートします。
APIプロバイダー | モデル |
---|---|
OpenAI | すべての GPT-4 および GTP-3.5-Turbo モデル すべてのテキスト補完モデル (davinci、gpt-3.5-turbo-instruct など) |
マイクロソフトアジュール | すべての OpenAI モデル、Mistral Large |
人間的 | クロード 3モデル |
ミストラルAI | ミストラルの全モデル |
Google AIスタジオ | Google Gemini モデル |
Google バーテックス AI | Gemini Pro およびその他のモデル |
ディープインフラ | deepinfra/アイロボロス-70b jondurbin/airoboros-l2-70b-gpt4-1.4.1 メタラマ/ラマ-2-70b-チャット-hf その他OpenAI APIを搭載したモデル |
エニースケール | メタラマ/ラマ-2-70b-チャット-hf メタラマ/ラマ-2-13b-チャット-hf メタラマ/ラマ-7b-チャット-hf |
グロク | LLaMA2 70b ミストラル 8x7b ジェマ 7b |
花火 | 50 を超えるオープンソース言語モデル |
あらゆるプログラミング言語の git .patch ファイルの変更について、LLM によるコード レビューを実行します。
写真から花びらの枚数と花の色を決定する (gpt-4-turbo)
オリンピックの数学問題を解く際の 20 以上の最先端モデルのベンチマーク精度。 HuggingFace Transformers によるローカル言語モデルの推論、並列推論。
@TODO
これは実験的な機能です。
Python インポート システムを調整して、モジュール docstring のメタデータに基づいて MicroCore 環境の自動セットアップを提供します。
import microcore . ai_modules
詳細については、「貢献」を参照してください。
MIT ライセンスに基づいてライセンス提供 © 2023 Vitalii Stepanenko