Ini adalah pembungkus API yang direkayasa terbalik untuk taman bermain Vercel AI, yang memungkinkan akses gratis ke banyak LLM, termasuk chatgpt openai, perintah cohere setiap malam, serta beberapa model open source.
Daftar Isi Dihasilkan dengan Markdown-Toc.
Anda dapat menginstal pustaka ini dengan menjalankan perintah berikut:
pip3 install vercel-llm-api
Contoh dapat ditemukan di direktori /examples
. Untuk menjalankan contoh -contoh ini, cukup jalankan file Python yang disertakan dari terminal Anda.
python3 examples/generate.py
Untuk menggunakan pustaka ini, cukup impor vercel_ai
dan buat instance vercel_ai.Client
. Anda dapat menentukan proxy menggunakan argumen kata kunci proxy
.
Contoh normal:
import vercel_ai
client = vercel_ai . Client ()
Contoh Proksi:
import vercel_ai
client = vercel_ai . Client ( proxy = "socks5h://193.29.62.48:11003" )
Perhatikan bahwa contoh -contoh berikut menganggap client
adalah nama instance vercel_ai.Client
Anda.
Klien mengunduh model yang tersedia setelah inisialisasi, dan menyimpannya di 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
},
...
}
...
}
}
Perhatikan bahwa, karena belum ada auth, jika model memiliki properti "minBillingTier"
, itu tidak dapat digunakan.
Daftar ID Model juga tersedia di client.model_ids
.
>> > 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"
]
Dikt parameter default untuk setiap model dapat ditemukan di 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:"
]
},
...
}
Untuk menghasilkan beberapa teks, gunakan fungsi client.generate
, yang menerima argumen berikut:
model
- ID dari model yang ingin Anda gunakan.prompt
- Prompt Anda.params = {}
- Dikt parameter opsional. Lihat bagian sebelumnya untuk bagaimana menemukan ini.Fungsi ini adalah generator yang mengembalikan teks yang baru dihasilkan sebagai string.
Contoh streamed:
for chunk in client . generate ( "openai:gpt-3.5-turbo" , "Summarize the GNU GPL v3" ):
print ( chunk , end = "" , flush = True )
Contoh Non-Streamed:
result = ""
for chunk in client . generate ( "openai:gpt-3.5-turbo" , "Summarize the GNU GPL v3" ):
result += chunk
print ( result )
Untuk menghasilkan pesan obrolan, gunakan fungsi client.chat
, yang menerima argumen berikut:
model
- ID dari model yang ingin Anda gunakan.messages
- Daftar Pesan. Format untuk ini identik dengan bagaimana Anda akan menggunakan API Openai resmi.params = {}
- Dikt parameter opsional. Lihat bagian "Unduh Model yang Tersedia" untuk cara menemukannya.Fungsi ini adalah generator yang mengembalikan teks yang baru dihasilkan sebagai string.
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 ()
Jika Anda ingin menampilkan pesan debug, cukup hubungi vercel_ai.logger.setLevel
.
import vercel_ai
import logging
vercel_ai . logger . setLevel ( logging . INFO )
Program ini dilisensikan di bawah GNU GPL V3. Semua kode telah ditulis oleh saya, 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/>.