Amazon Bedrock ist ein vollständig verwalteter Dienst, der eine Auswahl leistungsstarker Foundation-Modelle (FMs) von führenden KI-Unternehmen wie AI21 Labs, Anthropic, Cohere, Stability AI und Amazon mit einer einzigen API bietet. Aus Sicht des Betriebs sorgt eine einzige einheitliche API für eine schnellere Entwicklung und Bereitstellung, da Aspekte wie Sicherheit, Skalierbarkeit und Überwachung standardisiert sind.
Wenn es jedoch darum geht, Code für die Interaktion mit den FMs zu schreiben, müssen Entwickler die API-Besonderheiten jedes FMs manuell berücksichtigen. Dies liegt daran, dass das Schema jedes FM einzigartig ist und zum Ausführen einer API-Anfrage die korrekte Body-Payload bereitgestellt werden muss.
➡️ Betrachten Sie zum Beispiel die folgende Aufforderung: When Christmas is celebrated?
Um diese Frage mithilfe des AI21Labs Jurassic-2 Mid
FM an Amazon Bedrock zu stellen, ist diese API-Anfrage erforderlich:
{
"modelId" : " ai21.j2-mid-v1 " ,
"contentType" : " application/json " ,
"accept" : " */* " ,
"body" : " { " prompt " : " When Christmas is celebrated? " , " maxTokens " :200, " temperature " :0.7, " topP " :1, " stopSequences " :[], " countPenalty " :{ " scale " :0}, " presencePenalty " :{ " scale " :0}, " frequencyPenalty " :{ " scale " :0}} "
}
Um genau dieselbe Frage an Amazon Bedrock mit Anthropic Claude V2
FM zu stellen, ist eine andere API-Anfrage erforderlich:
{
"modelId" : " anthropic.claude-v2 " ,
"contentType" : " application/json " ,
"accept" : " */* " ,
"body" : " { " prompt " : " Human: \ n \ nHuman: When Christmas is celebrated? \ n \ nAssistant: " , " max_tokens_to_sample " :300, " temperature " :1, " top_k " :250, " top_p " :0.999, " stop_sequences " :[ "\ n \ nHuman: " ], " anthropic_version " : " bedrock-2023-05-31 " } "
}
Um die Kakophonie zu reduzieren, führt dieses Projekt eine einfache, aber leistungsstarke Implementierung ein, um die einzelnen Schemata von jedem FM zu abstrahieren. Dies ist dank der Verwendung des Builder-Entwurfsmusters möglich, das die Konstruktion eines komplexen Objekts von seiner Darstellung trennt. In diesem Fall ist das komplexe Objekt der Anforderungstext, der an Amazon Bedrock gesendet werden muss. Um die Verwendung verschiedener FMs zu ermöglichen, wurde auch das Command-Entwurfsmuster verwendet. Jeder FM hat seine eigene Implementierung des Befehls. Auf diese Weise kann jeder FM seine einzigartigen Parameter auf seine eigene Weise handhaben.
Wenn Sie in einem praktischen Tutorial lernen möchten, wie man mit diesem Code spielt, können Sie sich das folgende YouTube-Video ansehen.
Um die BedrockRequestBody-Implementierung zu verwenden, rufen Sie einfach die statische Methode builder()
aus der Klasse auf und beginnen Sie mit der Bereitstellung der erforderlichen Parameter, nämlich der modeId
bzw. der prompt
. Denken Sie an die Frage: When Christmas is celebrated?
So würden Sie mit AI21Labs Jurassic-2 Mid
arbeiten:
String bedrockBody = BedrockRequestBody . builder ()
. withModelId ( "ai21.j2-mid-v1" )
. withPrompt ( "When Christmas is celebrated?" )
. build ();
Wenn Sie Anthropic Claude V2
FM verwenden möchten, gehen Sie ähnlich wie folgt vor:
String bedrockBody = BedrockRequestBody . builder ()
. withModelId ( "anthropic.claude-v2" )
. withPrompt ( "When Christmas is celebrated?" )
. build ();
Viel einfacher, oder? ?
Weitere Informationen finden Sie unter BEITRAGEN.
Dieses Projekt ist unter der MIT-0-Lizenz lizenziert. Siehe die LICENSE-Datei.