1 changed files with 75 additions and 0 deletions
			
			
		| @ -0,0 +1,75 @@ | |||
| import os | |||
| import requests | |||
| from dotenv import load_dotenv | |||
| 
 | |||
| def main(): | |||
|     # 1. Load the environment file with your API key | |||
|     home_dir = os.path.expanduser("~") | |||
|     env_file = os.path.join(home_dir, ".secretlab.env") | |||
|     load_dotenv(env_file) | |||
|     api_key = os.getenv("SECRETLAB_API_KEY") | |||
| 
 | |||
|     if not api_key: | |||
|         raise ValueError("SECRETLAB_API_KEY not found in ~/.secretlab.env") | |||
| 
 | |||
|     # 2. The correct endpoint | |||
|     url = "https://chat.secretlab.page/api/chat/completions" | |||
| 
 | |||
|     # 3. Sentences to classify | |||
|     sentences = [ | |||
|         "I love sunny days!", | |||
|         "This is a bland sandwich.", | |||
|         "I really hate waiting in long lines.", | |||
|         "The meeting was okay, nothing special.", | |||
|         "I am so excited about the upcoming holidays!" | |||
|     ] | |||
| 
 | |||
|     # 4. For each sentence, send a separate request | |||
|     for index, sentence in enumerate(sentences, start=1): | |||
|         # Prepare the request payload | |||
|         # We use Chat Completion format, but the system message strictly instructs the assistant | |||
|         # to return only "Positive" or "Negative" with no extra explanation. | |||
|         payload = { | |||
|             "model": "deepseek-r1:32b", | |||
|             "messages": [ | |||
|                 { | |||
|                     "role": "system", | |||
|                     "content": ( | |||
|                         "You are a helpful text classifier. You must respond with only " | |||
|                         "'Positive' or 'Negative' for the given text. No other words or punctuation." | |||
|                     ) | |||
|                 }, | |||
|                 { | |||
|                     "role": "user", | |||
|                     "content": f"Classify this sentence as Positive or Negative:\n{sentence}" | |||
|                 } | |||
|             ], | |||
|             "temperature": 0.0 | |||
|         } | |||
| 
 | |||
|         # Set the headers, including authorization | |||
|         headers = { | |||
|             "Content-Type": "application/json", | |||
|             "Authorization": f"Bearer {api_key}" | |||
|         } | |||
| 
 | |||
|         # POST the request | |||
|         response = requests.post(url, headers=headers, json=payload) | |||
| 
 | |||
|         # Check for success | |||
|         if response.status_code == 200: | |||
|             completion = response.json() | |||
|             # Extract the assistant's response text | |||
|             result_text = completion["choices"][0]["message"]["content"].strip() | |||
| 
 | |||
|             # Print the classification result for each sentence | |||
|             print(f"Sentence {index}: {sentence}") | |||
|             print(f"Classification: {result_text}") | |||
|             print("---------") | |||
|         else: | |||
|             print(f"Request for sentence {index} failed with status code: {response.status_code}") | |||
|             print("Response:", response.text) | |||
|             print("---------") | |||
| 
 | |||
| if __name__ == "__main__": | |||
|     main() | |||
					Loading…
					
					
				
		Reference in new issue