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 模型 |
米斯特拉尔人工智能 | 所有米斯特拉尔型号 |
谷歌人工智能工作室 | 谷歌双子座型号 |
谷歌顶点人工智能 | 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