File size: 1,095 Bytes
33bf7ab
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import cohere, openai, anthropic
from settings import COHERE_API_KEY, COHERE_MODEL_PRIMARY, MODEL_SETTINGS, OPENAI_API_KEY, OPENAI_MODEL_FALLBACK, ANTHROPIC_API_KEY, ANTHROPIC_MODEL_FALLBACK

def cohere_chat(prompt: str):
    if not COHERE_API_KEY: return None
    c=cohere.Client(COHERE_API_KEY)
    r=c.chat(model=COHERE_MODEL_PRIMARY, message=prompt, temperature=MODEL_SETTINGS["temperature"])
    return r.text if hasattr(r,"text") else None

def openai_chat(prompt: str):
    if not OPENAI_API_KEY: return None
    openai.api_key=OPENAI_API_KEY
    r=openai.ChatCompletion.create(model=OPENAI_MODEL_FALLBACK, messages=[{"role":"user","content":prompt}])
    return r["choices"][0]["message"]["content"]

def anthropic_chat(prompt: str):
    if not ANTHROPIC_API_KEY: return None
    a=anthropic.Anthropic(api_key=ANTHROPIC_API_KEY)
    r=a.messages.create(model=ANTHROPIC_MODEL_FALLBACK, messages=[{"role":"user","content":prompt}])
    return r.content[0].text

def generate_with_fallback(prompt: str):
    return cohere_chat(prompt) or openai_chat(prompt) or anthropic_chat(prompt) or ""