Odin / src /agents /promptfoo_provider.py
ODIN
Initial commit: ODIN multi-agent drilling intelligence system
67e93c9
import os
import sys
import json
import google.generativeai as genai
from dotenv import load_dotenv
load_dotenv()
genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
model = genai.GenerativeModel("gemini-3.1-flash-lite-preview")
def main():
try:
# Promptfoo passes the prompt string as JSON to stdin
input_data = sys.stdin.read()
if not input_data:
print(json.dumps({"error": "No input provided on stdin"}))
sys.exit(1)
# The prompt is a simple JSON string or object containing '{ "prompt": "..." }'
parsed = json.loads(input_data)
# Depending on how promptfoo calls this, it may be a direct string or a dict
if isinstance(parsed, dict) and 'prompt' in parsed:
prompt = parsed['prompt']
elif isinstance(parsed, str):
prompt = parsed
else:
prompt = str(parsed)
response = model.generate_content(prompt)
# Promptfoo expects the response inside a JSON object: { "output": "..." }
print(json.dumps({"output": response.text}))
sys.exit(0)
except Exception as e:
print(json.dumps({"error": str(e)}))
sys.exit(1)
if __name__ == "__main__":
main()