Spaces:
Running
Running
#!/usr/bin/env python3 | |
""" | |
Simple CLI for the Moffitt RAG Space. | |
Before running, run the following on your terminal: | |
pip install requests python-dotenv | |
Then, in the same folder as this file demo_client.py, create a file named .env | |
Add in it the following line | |
RAG_API_KEY=password (replace the actual password here, no "" symbols needed) | |
Usage: | |
python demo_client.py "What are the common types of cancer" -k 5 | |
Environment variables: | |
RAG_API_KEY Your X-API-Key header value (e.g. "alpha") | |
RAG_API_URL (optional) override the default Space URL | |
""" | |
import argparse | |
import os | |
import sys | |
import requests | |
from dotenv import load_dotenv | |
load_dotenv() | |
DEFAULT_URL = "https://buildng-moffitt-rag-demo.hf.space/v1/query" | |
def call_rag_api(question: str, k: int = 5, url: str = DEFAULT_URL) -> str: | |
api_key = os.getenv("RAG_API_KEY") | |
if not api_key: | |
sys.exit("RAG_API_KEY not set in environment") | |
payload = {"query": question, "k": k} | |
headers = { | |
"Content-Type": "application/json", | |
"X-API-Key": api_key, | |
} | |
response = requests.post(url, json=payload, headers=headers, timeout=30) | |
response.raise_for_status() # 4xx/5xx → raises HTTPError | |
return response.json()["answer"] | |
def main() -> None: | |
parser = argparse.ArgumentParser(description="Query the Moffitt RAG API") | |
parser.add_argument("question", help="Your natural-language question") | |
parser.add_argument("-k", type=int, default=5, help="Top-k passages to retrieve (default: 5)") | |
args = parser.parse_args() | |
answer = call_rag_api(args.question, args.k, DEFAULT_URL) | |
print("\n=== Answer ===\n") | |
print(answer) | |
if __name__ == "__main__": | |
main() | |
""" | |
If you want to integrate this with your ChatGPT API, | |
Reuse the same call_rag_api functions, | |
and when you need it, simply call | |
call_rag_api(question, k, DEFAULT_URL) | |
question is a string, your question, like "what is the risk of blood bone marrow transplant?" | |
k is an integer. Keep it a small integer (<10) | |
DEFAULT_URL is the variable above | |
""" |