Dies ist ein umgekehrter API -Wrapper für den Vercel AI -Spielplatz, der freien Zugriff auf viele LLMs ermöglicht, darunter OpenAIs Chatgpt, Coheres Kommando für Nacht sowie einige Open -Source -Modelle.
Inhaltsverzeichnis, die mit Markdown-TOC erzeugt werden.
Sie können diese Bibliothek installieren, indem Sie den folgenden Befehl ausführen:
pip3 install vercel-llm-api
Beispiele finden Sie im Verzeichnis /examples . Um diese Beispiele auszuführen, führen Sie einfach die mitgelieferten Python -Dateien aus Ihrem Terminal aus.
python3 examples/generate.py
Um diese Bibliothek zu verwenden, importieren Sie einfach vercel_ai und erstellen Sie eine Instanz vercel_ai.Client . Sie können einen Proxy mit dem Argument proxy -Schlüsselwort" angeben.
Normales Beispiel:
import vercel_ai
client = vercel_ai . Client ()Proxied Beispiel:
import vercel_ai
client = vercel_ai . Client ( proxy = "socks5h://193.29.62.48:11003" ) Beachten Sie, dass die folgenden Beispiele davon ausgehen, dass client der Name Ihrer Instanz vercel_ai.Client ist.
Der Client lädt die verfügbaren Modelle bei der Initialisierung herunter und speichert sie in client.models .
>> > print ( json . dumps ( client . models , indent = 2 ))
{
"anthropic:claude-instant-v1" : {
"id" : "anthropic:claude-instant-v1" , #the model's id
"provider" : "anthropic" , #the model's provider
"providerHumanName" : "Anthropic" , #the provider's display name
"makerHumanName" : "Anthropic" , #the maker of the model
"minBillingTier" : "hobby" , #the minimum billing tier needed to use the model
"parameters" : { #a dict of optional parameters that can be passed to the generate function
"temperature" : { #the name of the parameter
"value" : 1 , #the default value for the parameter
"range" : [ 0 , 1 ] #a range of possible values for the parameter
},
...
}
...
}
} Beachten Sie, dass es nicht verwendet werden kann, da es noch kein Auth gibt, wenn ein Modell die Eigenschaft "minBillingTier" vorhanden ist.
Eine Liste von Modell -IDs ist auch in client.model_ids verfügbar.
>> > print ( json . dumps ( client . model_ids , indent = 2 ))
[
"anthropic:claude-instant-v1" , #locked to hobby tier; unusable
"anthropic:claude-v1" , #locked to hobby tier; unusable
"replicate:replicate/alpaca-7b" ,
"replicate:stability-ai/stablelm-tuned-alpha-7b" ,
"huggingface:bigscience/bloom" ,
"huggingface:bigscience/bloomz" ,
"huggingface:google/flan-t5-xxl" ,
"huggingface:google/flan-ul2" ,
"huggingface:EleutherAI/gpt-neox-20b" ,
"huggingface:OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5" ,
"huggingface:bigcode/santacoder" ,
"cohere:command-medium-nightly" ,
"cohere:command-xlarge-nightly" ,
"openai:gpt-4" , #locked to pro tier; unusable
"openai:code-cushman-001" ,
"openai:code-davinci-002" ,
"openai:gpt-3.5-turbo" ,
"openai:text-ada-001" ,
"openai:text-babbage-001" ,
"openai:text-curie-001" ,
"openai:text-davinci-002" ,
"openai:text-davinci-003"
] Ein Diktat der Standardparameter für jedes Modell finden Sie unter client.model_params .
>> > print ( json . dumps ( client . model_defaults , indent = 2 ))
{
"anthropic:claude-instant-v1" : {
"temperature" : 1 ,
"maximumLength" : 200 ,
"topP" : 1 ,
"topK" : 1 ,
"presencePenalty" : 1 ,
"frequencyPenalty" : 1 ,
"stopSequences" : [
" n n Human:"
]
},
...
} Verwenden Sie zum Generieren eines Textes die Funktion client.generate , die die folgenden Argumente akzeptiert:
model - Die ID des Modells, das Sie verwenden möchten.prompt - Ihre Eingabeaufforderung.params = {} - Ein Diktieren optionaler Parameter. Siehe den vorherigen Abschnitt, um diese zu finden.Die Funktion ist ein Generator, der den neu generierten Text als Zeichenfolge zurückgibt.
Streamed Beispiel:
for chunk in client . generate ( "openai:gpt-3.5-turbo" , "Summarize the GNU GPL v3" ):
print ( chunk , end = "" , flush = True )Nicht gestreamter Beispiel:
result = ""
for chunk in client . generate ( "openai:gpt-3.5-turbo" , "Summarize the GNU GPL v3" ):
result += chunk
print ( result ) Verwenden Sie zur Generierung von Chat -Nachrichten die Funktion client.chat , die die folgenden Argumente akzeptiert:
model - Die ID des Modells, das Sie verwenden möchten.messages - eine Liste von Nachrichten. Das Format dafür ist identisch mit der Verwendung der offiziellen OpenAI -API.params = {} - Ein Diktieren optionaler Parameter. Weitere Informationen finden Sie im Abschnitt "Herunterladen der verfügbaren Modelle", um diese zu finden.Die Funktion ist ein Generator, der den neu generierten Text als Zeichenfolge zurückgibt.
messages = [
{ "role" : "system" , "content" : "You are a helpful assistant." },
{ "role" : "user" , "content" : "Who won the world series in 2020?" },
{ "role" : "assistant" , "content" : "The Los Angeles Dodgers won the World Series in 2020." },
{ "role" : "user" , "content" : "Where was it played?" }
]
for chunk in client . chat ( "openai:gpt-3.5-turbo" , messages ):
print ( chunk , end = "" , flush = True )
print () Wenn Sie die Debug -Nachrichten anzeigen möchten, rufen Sie einfach vercel_ai.logger.setLevel an.
import vercel_ai
import logging
vercel_ai . logger . setLevel ( logging . INFO )Dieses Programm ist unter der GNU GPL V3 lizenziert. Der gesamte Code wurde von mir geschrieben, ADING2210.
ading2210/vercel-llm-api: a reverse engineered API wrapper for the Vercel AI Playground
Copyright (C) 2023 ading2210
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.