1313## models
1414##
1515
16- OPENAI_MODEL = 'gpt-4o '
17- OPENAI_EMBED = 'text-embedding-3-small '
18- OPENAI_WHISPER = 'whisper-1 '
19- ANTHROPIC_MODEL = 'claude-3-5 -sonnet-latest'
16+ OPENAI_MODEL = 'gpt-4.1 '
17+ OPENAI_EMBED = 'text-embedding-3-large '
18+ OPENAI_TRANSCRIBE = 'gpt-4o-transcribe '
19+ ANTHROPIC_MODEL = 'claude-3-7 -sonnet-latest'
2020FIREWORKS_MODEL = 'accounts/fireworks/models/llama-v3p3-70b-instruct'
2121GROQ_MODEL = 'llama-3.3-70b-versatile'
2222DEEPSEEK_MODEL = 'deepseek-chat'
4242AZURE_API_VERSION = '2024-10-21'
4343ANTHROPIC_HEADERS = {
4444 'anthropic-version' : '2023-06-01' ,
45- 'anthropic-beta' : 'prompt-caching-2024-07-31' ,
4645}
4746
4847##
@@ -131,7 +130,11 @@ def payload_anthropic(content, system=None, prefill=None, prediction=None, histo
131130 messages .append ({'role' : 'assistant' , 'content' : prefill })
132131 payload = {'messages' : messages }
133132 if system is not None :
134- payload ['system' ] = system
133+ payload ['system' ] = [{
134+ 'text' : system ,
135+ 'type' : 'text' ,
136+ 'cache_control' : {'type' : 'ephemeral' },
137+ }]
135138 return payload
136139
137140def payload_oneping (content , system = None , prefill = None , prediction = None , history = None ):
@@ -212,6 +215,10 @@ def transcribe_openai(audio):
212215##
213216
214217DEFAULT_PROVIDER = {
218+ 'chat_path' : 'chat/completions' ,
219+ 'embed_path' : 'embeddings' ,
220+ 'transcribe_path' : 'audio/transcriptions' ,
221+ 'authorize' : authorize_openai ,
215222 'content' : content_openai ,
216223 'payload' : payload_openai ,
217224 'response' : response_openai ,
@@ -222,86 +229,62 @@ def transcribe_openai(audio):
222229# presets for known llm providers
223230LLM_PROVIDERS = {
224231 'local' : {
225- 'url' : 'http://{host}:{port}/v1/chat/completions' ,
226- 'host' : 'localhost' ,
227- 'port' : 8000 ,
232+ 'base_url' : 'http://localhost:8000/v1' ,
233+ 'authorize' : None ,
228234 },
229235 'oneping' : {
230- 'url' : 'http://{host}:{port}/chat' ,
231- 'host' : 'localhost' ,
232- 'port' : 5000 ,
236+ 'base_url' : 'http://localhost:5000' ,
237+ 'chat_path' : 'chat' ,
233238 'authorize' : None ,
239+ 'max_tokens_name' : 'max_tokens' ,
234240 'content' : content_oneping ,
235241 'payload' : payload_oneping ,
236242 'response' : response_oneping ,
237243 'stream' : stream_oneping ,
238244 },
239245 'openai' : {
240- 'url' : 'https://api.openai.com/v1/chat/completions' ,
241- 'authorize' : authorize_openai ,
242- 'max_tokens_name' : 'max_completion_tokens' ,
246+ 'base_url' : 'https://api.openai.com/v1' ,
243247 'api_key_env' : OPENAI_KEYENV ,
244- 'model' : OPENAI_MODEL ,
248+ 'chat_model' : OPENAI_MODEL ,
249+ 'embed_model' : OPENAI_EMBED ,
245250 },
246251 'anthropic' : {
247- 'url' : 'https://api.anthropic.com/v1/messages' ,
252+ 'base_url' : 'https://api.anthropic.com/v1' ,
253+ 'chat_path' : 'messages' ,
254+ 'max_tokens_name' : 'max_tokens' ,
248255 'content' : content_anthropic ,
249256 'payload' : payload_anthropic ,
250257 'authorize' : authorize_anthropic ,
251258 'response' : response_anthropic ,
252259 'stream' : stream_anthropic ,
253260 'api_key_env' : ANTHROPIC_KEYENV ,
254- 'model ' : ANTHROPIC_MODEL ,
261+ 'chat_model ' : ANTHROPIC_MODEL ,
255262 'headers' : ANTHROPIC_HEADERS ,
256263 },
264+ 'google' : {
265+ 'base_url' : 'https://generativelanguage.googleapis.com/v1beta/openai' ,
266+ 'api_key_env' : GOOGLE_KEYENV ,
267+ 'chat_model' : GOOGLE_MODEL ,
268+ 'embed_model' : GOOGLE_EMBED ,
269+ },
257270 'fireworks' : {
258- 'url' : 'https://api.fireworks.ai/inference/v1/chat/completions' ,
259- 'authorize' : authorize_openai ,
271+ 'base_url' : 'https://api.fireworks.ai/inference' ,
260272 'api_key_env' : FIREWORKS_KEYENV ,
261- 'model ' : FIREWORKS_MODEL ,
273+ 'chat_model ' : FIREWORKS_MODEL ,
262274 },
263275 'groq' : {
264- 'url' : 'https://api.groq.com/openai/v1/chat/completions' ,
265- 'authorize' : authorize_openai ,
266- 'max_tokens_name' : 'max_completion_tokens' ,
276+ 'base_url' : 'https://api.groq.com/openai' ,
267277 'api_key_env' : GROQ_KEYENV ,
268- 'model ' : GROQ_MODEL ,
278+ 'chat_model ' : GROQ_MODEL ,
269279 },
270280 'deepseek' : {
271- 'url' : 'https://api.deepseek.com/chat/completions' ,
272- 'authorize' : authorize_openai ,
281+ 'base_url' : 'https://api.deepseek.com' ,
273282 'api_key_env' : DEEPSEEK_KEYENV ,
274- 'model ' : DEEPSEEK_MODEL ,
283+ 'chat_model ' : DEEPSEEK_MODEL ,
275284 },
276285}
277286
278287def get_provider (provider ):
279288 if type (provider ) is str :
280289 provider = LLM_PROVIDERS [provider ]
281290 return {** DEFAULT_PROVIDER , ** provider }
282-
283- ##
284- ## embedding providers
285- ##
286-
287- DEFAULT_EMBED = {
288- 'authorize' : authorize_openai ,
289- 'embed' : embed_openai ,
290- }
291-
292- EMBED_PROVIDERS = {
293- 'local' : {
294- 'url' : 'http://{host}:{port}/v1/embeddings' ,
295- 'authorize' : None ,
296- },
297- 'openai' : {
298- 'url' : 'https://api.openai.com/v1/embeddings' ,
299- 'api_key_env' : 'OPENAI_API_KEY' ,
300- 'model' : 'text-embedding-3-small' ,
301- },
302- }
303-
304- def get_embed_provider (provider ):
305- if type (provider ) is str :
306- provider = EMBED_PROVIDERS [provider ]
307- return {** DEFAULT_EMBED , ** provider }
0 commit comments