MicroCore — это набор адаптеров Python для больших языковых моделей и API-интерфейсов семантического поиска, позволяющих удобно взаимодействовать с этими сервисами, делать их легко переключаемыми и отделять бизнес-логику от деталей реализации.
Он определяет интерфейсы для функций, обычно используемых в приложениях искусственного интеллекта, что позволяет вам сделать ваше приложение максимально простым и опробовать различные модели и сервисы без необходимости изменения кода приложения.
Вы даже можете переключаться между моделями завершения текста и завершения чата только с помощью конфигурации.
Основной пример использования выглядит следующим образом:
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
Питон 3.10/3.11/3.12
Поддерживаются версии пакета OpenAI v0.28+ и v1.X.
Наличие OPENAI_API_KEY
в переменных среды ОС достаточно для базового использования.
Функции поиска по сходству будут работать «из коробки», если у вас установлен пакет chromadb
pip.
Существует несколько вариантов настройки микроядра:
microcore.configure(**params)
.env
в корне вашего проекта; примеры: Basic.env, Mistral Large.env, Anthropic Claude 3 Opus.env, Gemini на Vertex AI.env, Gemini на 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
) выше, чем у переменных среды ОС.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 поддерживает все модели и поставщиков API, имеющих API OpenAI.
Поставщик API | Модели |
---|---|
ОпенАИ | Все модели GPT-4 и GTP-3.5-Turbo все модели завершения текста (davinci, gpt-3.5-turbo-instruct и т. д.) |
Microsoft Azure | Все модели OpenAI, Mistral Large |
антропный | Клод 3 модели |
МистральАИ | Все модели Мистраль |
Google AI-студия | Модели Google Близнецов |
Google Вертекс ИИ | Gemini Pro и другие модели |
Глубокая инфра | ДипИнфра/Айроборос-70б джондурбин/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 70б Микстрал 8х7б Джемма 7б |
Фейерверк | Более 50 языковых моделей с открытым исходным кодом |
Выполняет проверку кода LLM на наличие изменений в файлах git .patch на любых языках программирования.
Определить количество лепестков и цвет цветка по фото (gpt-4-turbo)
Сравнительная точность более 20 современных моделей решения олимпиадных математических задач. Вывод моделей местного языка с помощью HuggingFace Transformers, параллельный вывод.
@ТОДО
Это экспериментальная функция.
Изменяет систему импорта Python для обеспечения автоматической настройки среды MicroCore на основе метаданных в строках документации модуля.
import microcore . ai_modules
Пожалуйста, смотрите ВКЛАД для получения подробной информации.
Лицензия MIT © 2023 Виталий Степаненко