Spaces:
Sleeping
Sleeping
File size: 2,377 Bytes
75cfd1d e995e3b 487bfb7 e995e3b 75cfd1d 487bfb7 75cfd1d 487bfb7 e995e3b 75cfd1d e995e3b 75cfd1d 487bfb7 75cfd1d 487bfb7 75cfd1d e995e3b 75cfd1d afd6eb2 75cfd1d afd6eb2 75cfd1d afd6eb2 75cfd1d e0a817a 75cfd1d afd6eb2 75cfd1d afd6eb2 75cfd1d afd6eb2 75cfd1d 17cd8b9 75cfd1d 487bfb7 75cfd1d 487bfb7 75cfd1d 17cd8b9 75cfd1d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# genesis/providers.py
"""
API Providers for GENESIS-AI
Handles calls to DeepSeek, Gemini, OpenAI, and PubMed.
"""
import os
import requests
# ENV
DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
NCBI_API_KEY = os.getenv("NCBI_API_KEY")
NCBI_EMAIL = os.getenv("NCBI_EMAIL")
def run_deepseek_summary(prompt):
"""Summarize using DeepSeek API."""
try:
r = requests.post(
"https://api.deepseek.com/v1/chat/completions",
headers={"Authorization": f"Bearer {DEEPSEEK_API_KEY}"},
json={"model": "deepseek-chat", "messages": [{"role": "user", "content": prompt}]}
)
r.raise_for_status()
return r.json()["choices"][0]["message"]["content"]
except Exception as e:
return f"[DeepSeek Error] {e}"
def run_gemini_polish(text):
"""Polish text with Gemini."""
try:
r = requests.post(
f"https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key={GEMINI_API_KEY}",
json={"contents": [{"parts": [{"text": text}]}]}
)
r.raise_for_status()
return r.json()["candidates"][0]["content"]["parts"][0]["text"]
except Exception as e:
return f"[Gemini Error] {e}"
def run_openai_image(prompt):
"""Generate image with OpenAI DALL·E or fallback."""
try:
r = requests.post(
"https://api.openai.com/v1/images/generations",
headers={"Authorization": f"Bearer {OPENAI_API_KEY}"},
json={"model": "gpt-image-1", "prompt": prompt, "size": "1024x1024"}
)
r.raise_for_status()
return r.json()["data"][0]["url"]
except Exception as e:
return f"[OpenAI Image Error] {e}"
def pubmed_fallback_search(query, retmax=5):
"""Simple PubMed search for citations."""
try:
url = f"https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi"
params = {"db": "pubmed", "term": query, "retmode": "json", "retmax": retmax, "api_key": NCBI_API_KEY}
r = requests.get(url, params=params)
r.raise_for_status()
ids = r.json()["esearchresult"]["idlist"]
return [{"pmid": pid, "url": f"https://pubmed.ncbi.nlm.nih.gov/{pid}/"} for pid in ids]
except Exception as e:
return [{"error": str(e)}]
|