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