CoolFace
Apppublic

ombhojane/restart_interviews_called

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes
evaluate.py64 linesDownload Raw Back to root
1import pandas as pd2import google.generativeai as genai3import os4 5# Load responses from a file6def load_responses(filename="interview_responses_round_1.csv"):7    try:8        return pd.read_csv(filename)9    except FileNotFoundError:10        print("Response file not found. Please ensure that 'round1.py' has been run and responses have been saved.")11        exit()12 13# Configure and initialize Gemini14def configure_gemini():15    api_key = os.getenv("GOOGLE_GENERATIVE_AI_API_KEY")16    if not api_key:17        print("Google Generative AI API key not set. Please set your API key as an environment variable.")18        exit()19 20    genai.configure(api_key=api_key)21 22    generation_config = {23        "temperature": 0.9,24        "top_p": 1,25        "top_k": 50,26        "max_output_tokens": 512,27    }28 29    safety_settings = [30        {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_MEDIUM_AND_ABOVE"},31        {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_MEDIUM_AND_ABOVE"},32        {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_MEDIUM_AND_ABOVE"},33        {"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_MEDIUM_AND_ABOVE"},34    ]35 36    return genai.GenerativeModel(model_name="gemini-1.0-pro",37                                 generation_config=generation_config,38                                 safety_settings=safety_settings)39 40def evaluate_responses(model, responses):41    evaluations = []42    for index, row in responses.iterrows():43        try:44            response = model.generate_content([row['response']])45            evaluations.append(response.text)46        except Exception as e:47            print(f"An error occurred while evaluating response {index+1}: {e}")48            evaluations.append("Error during evaluation.")49 50    return evaluations51 52def print_evaluations(responses, evaluations):53    for index, (response, evaluation) in enumerate(zip(responses['response'], evaluations), start=1):54        print(f"Response {index}: {response}")55        print(f"Evaluation: {evaluation}")56        print("----------")57 58if __name__ == "__main__":59    responses = load_responses()60    if not responses.empty:61        model = configure_gemini()62        evaluations = evaluate_responses(model, responses)63        print_evaluations(responses, evaluations)64