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
파이썬 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, 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
값)의 우선순위는 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 제공자 | 모델 |
---|---|
오픈AI | 모든 GPT-4 및 GTP-3.5-Turbo 모델 모든 텍스트 완성 모델(davinci, gpt-3.5-turbo-instruct 등) |
마이크로소프트 애저 | 모든 OpenAI 모델, Mistral Large |
인류학 | 클로드 3 모델 |
미스트랄AI | 모든 미스트랄 모델 |
구글 AI 스튜디오 | Google Gemini 모델 |
구글 버텍스 AI | 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 |
그로크 | LLaMA2 70b 믹스트랄 8x7b 젬마 7b |
불꽃 | 50개 이상의 오픈 소스 언어 모델 |
모든 프로그래밍 언어로 된 git .patch 파일의 변경 사항에 대해 LLM에서 코드 검토를 수행합니다.
사진에서 꽃잎 수와 꽃 색깔 확인(gpt-4-turbo)
올림피아드 수학 문제 해결에 대한 20개 이상의 최신 모델의 정확도를 벤치마크합니다. HuggingFace Transformers, 병렬 추론을 통해 로컬 언어 모델 추론.
@TODO
이는 실험적인 기능입니다.
모듈 독스트링의 메타데이터를 기반으로 MicroCore 환경의 자동 설정을 제공하도록 Python 가져오기 시스템을 조정합니다.
import microcore . ai_modules
자세한 내용은 CONTRIBUTING을 참조하세요.
MIT 라이선스에 따라 라이선스가 부여됨 © 2023 Vitalii Stepanenko