Marvin은 신뢰할 수 있고 확장 가능하며 신뢰하기 쉬운 자연 언어 인터페이스를 구축하기위한 가벼운 AI 툴킷입니다.
Marvin의 각 도구는 AI를 사용하여 Entity Extraction, Classification 및 Synthetic Data 생성과 같은 일반적이고 복잡한 문제를 해결하기 위해 간단하고 자체 문서화입니다. 각 도구는 독립적이고 점진적으로 채택 가능하므로 자체적으로 또는 다른 도서관과 함께 사용할 수 있습니다. Marvin은 또한 멀티 모달이며 이미지 및 오디오 생성을 지원하고 이미지를 추출 및 분류를위한 입력으로 사용합니다.
Marvin은 AI를 구축하는 것보다 AI 사용 에 더 관심이있는 개발자를위한 것이며 뛰어난 개발자 경험을 만드는 데 중점을 둡니다. Marvin 사용자는 몇 줄의 추가 코드만으로 단단히 스코핑 된 "AI Magic"을 기존 소프트웨어 프로젝트에 가져올 수있는 권한을 느낍니다.
Marvin은 생성 AI를 사용하여 사용하기 쉬운 라이브러리로 구축하기위한 모범 사례와 함께 신뢰할 수 있고 관찰 가능한 소프트웨어를 구축하기위한 모범 사례를 통합하는 것을 목표로합니다. 그것은 진지한 도구이지만, 우리는 당신이 그것을 즐기시기 바랍니다.
Marvin은 오픈 소스이며 무료로 사용할 수 있으며 만들어 졌습니까? Prefect 팀에 의해.
pip
로 최신 버전을 설치하십시오.
pip install marvin -U
설치를 확인하려면 터미널에서 marvin version
실행하십시오.
Marvin은 독립적으로 사용하도록 설계된 다양한 유용한 도구로 구성됩니다. 각각은 공통 LLM 사용 사례와 간단한 자체 문서화 인터페이스로 전원을 공급하는 패키지를 나타냅니다.
? 소스 코드없이 사용자 정의 AI 기반 기능을 작성하십시오
? ️ 텍스트를 카테고리로 분류합니다
? 텍스트에서 구조화 된 엔티티를 추출합니다
? 텍스트를 구조화 된 데이터로 변환합니다
스키마에서 합성 데이터를 생성합니다
? ️ 텍스트 나 기능에서 이미지를 만듭니다
자연어로 이미지를 설명하십시오
? ️ 이미지를 카테고리로 분류합니다
? 이미지에서 구조화 된 엔티티를 추출합니다
? 이미지를 구조화 된 데이터로 변환합니다
텍스트 나 기능으로 말을 생성합니다
✍️ 녹음 된 오디오에서 연설을 전사하십시오
? ️ 사용자를 지속적으로 또는 개별 문구로 기록합니다
? ️ 비디오를 지속적으로 녹음하십시오
? 어시스턴트와 채팅하고 사용자 정의 도구를 사용하십시오
? 지속적인 상태를 관리하는 응용 프로그램을 구축하십시오
다음은 Marvin의 주요 기능 중 일부 회오리 바람 여행입니다. 자세한 내용은 문서를 확인하십시오!
Marvin은 라벨 세트를 사용하여 텍스트를 classify
할 수 있습니다.
import marvin
marvin . classify (
"Marvin is so easy to use!" ,
labels = [ "positive" , "negative" ],
)
# "positive"
분류에 대해 자세히 알아보십시오.
Marvin은 텍스트에서 구조화 된 엔티티를 extract
할 수 있습니다.
import pydantic
class Location ( pydantic . BaseModel ):
city : str
state : str
marvin . extract ( "I moved from NY to CHI" , target = Location )
# [
# Location(city="New York", state="New York"),
# Location(city="Chicago", state="Illinois")
# ]
거의 모든 Marvin 기능에는 더 많은 제어를위한 instructions
제공 될 수 있습니다. 여기서 우리는 금전적 값 만 추출합니다.
marvin . extract (
"I paid $10 for 3 tacos and got a dollar and 25 cents back." ,
target = float ,
instructions = "Only extract money"
)
# [10.0, 1.25]
Entity Extraction에 대해 자세히 알아보십시오.
Marvin은 지침 및 선택적 스키마에 따라 합성 데이터를 generate
할 수 있습니다.
class Location ( pydantic . BaseModel ):
city : str
state : str
marvin . generate (
n = 4 ,
target = Location ,
instructions = "cities in the United States named after presidents"
)
# [
# Location(city='Washington', state='District of Columbia'),
# Location(city='Jackson', state='Mississippi'),
# Location(city='Cleveland', state='Ohio'),
# Location(city='Lincoln', state='Nebraska'),
# ]
데이터 생성에 대해 자세히 알아보십시오.
Marvin은 임의의 텍스트를 모든 파이썬 유형으로 cast
할 수 있습니다.
marvin . cast ( "one two three" , list [ int ])
# [1, 2, 3]
이는 텍스트 입력을 표준화하거나 자연어를 스키마에 일치시키는 데 유용합니다.
class Location ( pydantic . BaseModel ):
city : str
state : str
marvin . cast ( "The Big Apple" , Location )
# Location(city="New York", state="New York")
클래스 기반 접근 방식의 경우 Marvin의 @model
데코레이터를 Pydantic 모델에 적용하여 텍스트에서 인스턴스화 할 수 있습니다.
@ marvin . model
class Location ( pydantic . BaseModel ):
city : str
state : str
Location ( "The Big Apple" )
# Location(city="New York", state="New York")
여기에서 유형에 캐스팅하는 것에 대해 자세히 알아보십시오.
Marvin 함수를 사용하면 모든 입력, 지침 및 출력 유형을 결합하여 소스 코드없이 사용자 정의 AI 기반 동작을 생성 할 수 있습니다. 이러한 기능은 extract
또는 classify
기능을 훨씬 뛰어 넘을 수 있으며 복잡한 자연어 처리 또는 출력에 대한 입력의 조합에 이상적입니다.
@ marvin . fn
def sentiment ( text : str ) -> float :
"""
Returns a sentiment score for `text`
between -1 (negative) and 1 (positive).
"""
sentiment ( "I love working with Marvin!" ) # 0.8
sentiment ( "These examples could use some work..." ) # -0.2
Marvin 기능은 소스 코드를 작성할 필요가 없다는 점을 제외하고는 일반 파이썬 기능과 똑같이 보입니다. 이러한 기능을 호출하면 AI는 설명을 해석하고 입력하고 출력을 생성합니다.
Marvin은 소스 코드를 생성하거나 실행하여 작동하지 않으며 대부분의 사용 사례에 대해 안전하지 않습니다. 대신 LLM 자체를 "런타임"으로 사용하여 기능 출력을 예측합니다. 이것이 실제로 그 힘의 원천입니다. Marvin 기능은 코드로 표현하기 어렵거나 불가능한 복잡한 사용 사례를 처리 할 수 있습니다.
기능에 대한 자세한 내용은 여기를 참조하십시오.
Marvin은 텍스트에서 이미지를 paint
수 있습니다.
marvin . paint ( "a simple cup of coffee, still warm" )
이미지 생성에 대해 자세히 알아보십시오.
Marvin은 텍스트 외에도 GPT-4 비전 모델을 사용하여 이미지에서 엔티티에서 캡션, 분류, 변환 및 추출을 지원합니다.
marvin . classify (
marvin . Image . from_path ( "docs/images/coffee.png" ),
labels = [ "drink" , "food" ],
)
# "drink"
Marvin은 음성을 전사하고 기간 동안 오디오를 생성 할 수 있지만 옵션 audio
추가 기능은 오디오를 녹음하고 재생할 수있는 유틸리티를 제공합니다.
import marvin
import marvin . audio
# record the user
user_audio = marvin . audio . record_phrase ()
# transcribe the text
user_text = marvin . transcribe ( user_audio )
# cast the language to a more formal style
ai_text = marvin . cast ( user_text , instructions = 'Make the language ridiculously formal' )
# generate AI speech
ai_audio = marvin . speak ( ai_text )
# play the result
ai_audio . play ()
기능 아이디어? 불화의 #development
채널에서 공유하십시오.
? 버그를 찾았습니까? 자유롭게 문제를여십시오.
? 피드백? 마빈은 적극적으로 발전하고 있으며 우리는 그것을 듣고 싶습니다.