MicroCore是用於大型語言模型和語義搜尋 API 的 python 適配器的集合,允許以便捷的方式與這些服務進行通信,使它們可以輕鬆切換並將業務邏輯與實作細節分開。
它定義了人工智慧應用程式中通常使用的功能的接口,這使您可以使應用程式盡可能簡單並嘗試各種模型和服務,而無需更改應用程式程式碼。
您甚至可以僅使用配置在文字完成和聊天完成模型之間切換。
基本使用範例如下:
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 軟體包版本。
在作業系統環境變數中有OPENAI_API_KEY
足以滿足基本使用。
如果您安裝了chromadb
pip 軟體包,相似性搜尋功能將會開箱即用。
有幾個選項可用於配置微核:
microcore.configure(**params)
.env
檔;例:basic.env、Mistral Large.env、Anthropic Claude 3 Opus.env、Vertex AI.env 上的 Gemini、AI Studio.env 上的 Geminimc.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
的值)的優先權高於作業系統環境變數。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提供者 | 型號 |
---|---|
開放人工智慧 | 所有 GPT-4 和 GTP-3.5-Turbo 型號 所有文本完成模型(davinci、gpt-3.5-turbo-instruct 等) |
微軟Azure | 所有 OpenAI 模型,Mistral Large |
人擇 | 克勞德 3 模型 |
米斯特拉爾人工智慧 | 所有米斯特拉爾型號 |
谷歌人工智慧工作室 | Google雙子座型號 |
谷歌頂點人工智慧 | Gemini Pro 及其他型號 |
深層基礎設施 | Deepinfra/airoboros-70b 喬杜賓/airoboros-l2-70b-gpt4-1.4.1 元駱駝/Llama-2-70b-chat-hf 以及其他具有 OpenAI API 的模型 |
任意規模 | 元駱駝/Llama-2-70b-chat-hf 元駱駝/Llama-2-13b-chat-hf 元駱駝/Llama-7b-chat-hf |
格羅克 | 拉馬2 70b 混合8x7b 傑瑪7b |
煙火 | 超過 50 個開源語言模型 |
由 LLM 對任何程式語言的 git .patch 檔案中的變更執行程式碼審查。
確定照片中的花瓣數量和花朵顏色 (gpt-4-turbo)
解決奧林匹克數學問題的 20 多個最先進模型的基準準確度。透過 HuggingFace Transformers 推理本地語言模型,並行推理。
@待辦事項
這是實驗性功能。
調整 Python 導入系統,以根據模組文件字串中的元資料自動設定 MicroCore 環境。
import microcore . ai_modules
詳細資訊請參閱貢獻。
已獲得 MIT 許可 © 2023 Vitalii Stepanenko