Files

1 line
20 KiB
JSON

{"repo": "adamixd/emotionai", "files": {"deepseek_api_generator.py": {"4b4564aebf5732c2cf1f20d09e7dda807ee8597e": {"t": 1785746498.9334223, "n": 4809, "h": "2dab5add33e8b7d7", "c": "import argparse\nimport datetime\nimport os\nimport time\n\nfrom openai import OpenAI\n\nDEEPSEEK_BASE_URL = \"https://api.deepseek.com\"\nMODEL_MAPPING = {\n \"v3\": \"deepseek-chat\",\n \"r1\": \"deepseek-reasoner\"\n}\n\n\nclass DeepSeekClient:\n def __init__(self, api_key, model_version=\"v3\"):\n self.client = OpenAI(\n api_key=api_key,\n base_url=DEEPSEEK_BASE_URL\n )\n self.model = MODEL_MAPPING[model_version.lower()]\n\n def generate(self, prompt, temperature=0.8, frequency_penalty=0.5, top_p=0.9, max_tokens=4000):\n try:\n response = self.client.chat.completions.create(\n model=self.model,\n messages=[\n {\n \"role\": \"system\",\n \"content\": (\n \"1. Odpowiadaj wyłącznie w języku polskim\\n\"\n \"2. Formatuj odpowiedź jako lista zdań\\n\"\n \"3. Każde zdanie w nowej linii bez numeracji\\n\"\n \"4. Unikaj słów: 'Twoja', 'Twój', 'Twoje' i podobnych\\n\"\n \"5. Wygeneruj dokładnie 50 zdań spełniających kryteria.\\n\"\n # \"6. Słowa nie we wszytkich zdaniach mają być unikalne lub zastąpione synonimem.\\n\"\n \"7. Nie dodawaj żadnych komentarzy, zwrócone mają być tylko zdania\"\n )\n },\n {\n \"role\": \"user\",\n \"content\": prompt\n }\n ],\n temperature=temperature,\n max_tokens=max_tokens,\n frequency_penalty=frequency_penalty,\n top_p=top_p,\n stream=False\n )\n return response.choices[0].message.content.strip()\n\n except Exception as e:\n raise RuntimeError(f\"API Error: {str(e)}\")\n\n\ndef save_response(response, emotion, model_name, words):\n timestamp = datetime.datetime.now().strftime(\"%Y-%m-%d-%H-%M-%S\")\n directory = os.path.join(\"data\", \"raw\", emotion, model_name)\n os.makedirs(directory, exist_ok=True)\n file_path = os.path.join(directory, f\"{emotion}_{words}_{timestamp}.txt\")\n\n with open(file_path, \"w\", encoding=\"utf-8\") as f:\n f.write(response)\n\n\ndef main():\n start_time = time.time()\n\n parser = argparse.ArgumentParser()\n parser.add_argument(\"--api-key\", required=True, help=\"Klucz API DeepSeek\")\n parser.add_argument(\"--model\", choices=[\"v3\", \"r1\"], default=\"v3\", help=\"Wersja modelu (v3/r1)\")\n parser.add_argument(\"--iterations\", type=int, default=1)\n parser.add_argument(\"--temperature\", type=float, default=0.8)\n args = parser.parse_args()\n\n args.temperature = max(0.0, min(args.temperature, 2))\n\n api_client = DeepSeekClient(args.api_key, args.model)\n emotions = [\"angry\", \"disgust\", \"fear\", \"happy\", \"neutral\", \"sad\", \"surprise\"]\n\n for i in range(args.iterations):\n for words in range(1, 13):\n for emotion in emotions:\n prompt = (\n f\"Wygeneruj 50 unikalnych zdań w języku polskim spełniających kryteria:\\n\"\n f\"- Temat: różne dziedziny życia ludzi i zwierząt\\n\"\n f\"- Emocja: zdanie ma być zaklasyfikowane do emocji {emotion.capitalize()}\\n\"\n f\"- Długość: {words}-{words + 2} słów\\n\"\n f\"- Format: każde zdanie w nowej linii\\n\"\n )\n\n response = api_client.generate(\n prompt=prompt,\n temperature=args.temperature,\n frequency_penalty=0.6,\n top_p=0.9,\n max_tokens=8000,\n )\n\n lines = len(response.split('\\n'))\n if not response or lines < 30:\n print(f\"Received incomplete response for {emotion}, {lines} lines\")\n continue\n\n elapsed_time = time.time() - start_time\n hours = int(elapsed_time // 3600)\n remaining_seconds = elapsed_time % 3600\n minutes = int(remaining_seconds // 60)\n seconds = int(remaining_seconds % 60)\n\n save_response(response, emotion, f\"DeepSeek-{args.model.upper()}\", words)\n print(\n f\"Emotion: {emotion.ljust(8)} | \"\n f\"Words: {words}-{words + 2} | \"\n f\"Lines: {lines} | \"\n f\"Iteration: {str(i + 1).rjust(len(str(args.iterations)))}/{args.iterations} | \"\n f\"Execution time: {str(hours).rjust(2)}h {str(minutes).rjust(2)}m {str(seconds).rjust(2)}s\"\n )\n\n time.sleep(1)\n\n\nif __name__ == \"__main__\":\n main()\n"}, "0744c374146c1a6e8e380b4205e5e73b58979e7c": {"t": 1785764979.128703, "n": 4809, "h": "2dab5add33e8b7d7", "c": "import argparse\nimport datetime\nimport os\nimport time\n\nfrom openai import OpenAI\n\nDEEPSEEK_BASE_URL = \"https://api.deepseek.com\"\nMODEL_MAPPING = {\n \"v3\": \"deepseek-chat\",\n \"r1\": \"deepseek-reasoner\"\n}\n\n\nclass DeepSeekClient:\n def __init__(self, api_key, model_version=\"v3\"):\n self.client = OpenAI(\n api_key=api_key,\n base_url=DEEPSEEK_BASE_URL\n )\n self.model = MODEL_MAPPING[model_version.lower()]\n\n def generate(self, prompt, temperature=0.8, frequency_penalty=0.5, top_p=0.9, max_tokens=4000):\n try:\n response = self.client.chat.completions.create(\n model=self.model,\n messages=[\n {\n \"role\": \"system\",\n \"content\": (\n \"1. Odpowiadaj wyłącznie w języku polskim\\n\"\n \"2. Formatuj odpowiedź jako lista zdań\\n\"\n \"3. Każde zdanie w nowej linii bez numeracji\\n\"\n \"4. Unikaj słów: 'Twoja', 'Twój', 'Twoje' i podobnych\\n\"\n \"5. Wygeneruj dokładnie 50 zdań spełniających kryteria.\\n\"\n # \"6. Słowa nie we wszytkich zdaniach mają być unikalne lub zastąpione synonimem.\\n\"\n \"7. Nie dodawaj żadnych komentarzy, zwrócone mają być tylko zdania\"\n )\n },\n {\n \"role\": \"user\",\n \"content\": prompt\n }\n ],\n temperature=temperature,\n max_tokens=max_tokens,\n frequency_penalty=frequency_penalty,\n top_p=top_p,\n stream=False\n )\n return response.choices[0].message.content.strip()\n\n except Exception as e:\n raise RuntimeError(f\"API Error: {str(e)}\")\n\n\ndef save_response(response, emotion, model_name, words):\n timestamp = datetime.datetime.now().strftime(\"%Y-%m-%d-%H-%M-%S\")\n directory = os.path.join(\"data\", \"raw\", emotion, model_name)\n os.makedirs(directory, exist_ok=True)\n file_path = os.path.join(directory, f\"{emotion}_{words}_{timestamp}.txt\")\n\n with open(file_path, \"w\", encoding=\"utf-8\") as f:\n f.write(response)\n\n\ndef main():\n start_time = time.time()\n\n parser = argparse.ArgumentParser()\n parser.add_argument(\"--api-key\", required=True, help=\"Klucz API DeepSeek\")\n parser.add_argument(\"--model\", choices=[\"v3\", \"r1\"], default=\"v3\", help=\"Wersja modelu (v3/r1)\")\n parser.add_argument(\"--iterations\", type=int, default=1)\n parser.add_argument(\"--temperature\", type=float, default=0.8)\n args = parser.parse_args()\n\n args.temperature = max(0.0, min(args.temperature, 2))\n\n api_client = DeepSeekClient(args.api_key, args.model)\n emotions = [\"angry\", \"disgust\", \"fear\", \"happy\", \"neutral\", \"sad\", \"surprise\"]\n\n for i in range(args.iterations):\n for words in range(1, 13):\n for emotion in emotions:\n prompt = (\n f\"Wygeneruj 50 unikalnych zdań w języku polskim spełniających kryteria:\\n\"\n f\"- Temat: różne dziedziny życia ludzi i zwierząt\\n\"\n f\"- Emocja: zdanie ma być zaklasyfikowane do emocji {emotion.capitalize()}\\n\"\n f\"- Długość: {words}-{words + 2} słów\\n\"\n f\"- Format: każde zdanie w nowej linii\\n\"\n )\n\n response = api_client.generate(\n prompt=prompt,\n temperature=args.temperature,\n frequency_penalty=0.6,\n top_p=0.9,\n max_tokens=8000,\n )\n\n lines = len(response.split('\\n'))\n if not response or lines < 30:\n print(f\"Received incomplete response for {emotion}, {lines} lines\")\n continue\n\n elapsed_time = time.time() - start_time\n hours = int(elapsed_time // 3600)\n remaining_seconds = elapsed_time % 3600\n minutes = int(remaining_seconds // 60)\n seconds = int(remaining_seconds % 60)\n\n save_response(response, emotion, f\"DeepSeek-{args.model.upper()}\", words)\n print(\n f\"Emotion: {emotion.ljust(8)} | \"\n f\"Words: {words}-{words + 2} | \"\n f\"Lines: {lines} | \"\n f\"Iteration: {str(i + 1).rjust(len(str(args.iterations)))}/{args.iterations} | \"\n f\"Execution time: {str(hours).rjust(2)}h {str(minutes).rjust(2)}m {str(seconds).rjust(2)}s\"\n )\n\n time.sleep(1)\n\n\nif __name__ == \"__main__\":\n main()\n"}, "2b7afc16d4ef7b1756a2a066b61d08cd9d968d49": {"t": 1785764980.600893, "n": 4738, "h": "aa09a59ecddd753b", "c": "import argparse\nimport datetime\nimport os\nimport time\n\nfrom openai import OpenAI\n\nDEEPSEEK_BASE_URL = \"https://api.deepseek.com\"\nMODEL_MAPPING = {\n \"v3\": \"deepseek-chat\",\n \"r1\": \"deepseek-reasoner\"\n}\n\n\nclass DeepSeekClient:\n def __init__(self, api_key, model_version=\"v3\"):\n self.client = OpenAI(\n api_key=api_key,\n base_url=DEEPSEEK_BASE_URL\n )\n self.model = MODEL_MAPPING[model_version.lower()]\n\n def generate(self, prompt, temperature=0.8, frequency_penalty=0.5, top_p=0.9, max_tokens=4000):\n try:\n response = self.client.chat.completions.create(\n model=self.model,\n messages=[\n {\n \"role\": \"system\",\n \"content\": (\n \"1. Odpowiadaj wyłącznie w języku polskim\\n\"\n \"2. Formatuj odpowiedź jako lista zdań\\n\"\n \"3. Każde zdanie w nowej linii bez numeracji\\n\"\n \"4. Unikaj słów: 'Twoja', 'Twój', 'Twoje' i podobnych\\n\"\n \"5. Wygeneruj dokładnie 50 zdań spełniających kryteria.\\n\"\n # \"6. Słowa nie we wszytkich zdaniach mają być unikalne lub zastąpione synonimem.\\n\"\n \"7. Nie dodawaj żadnych komentarzy, zwrócone mają być tylko zdania\"\n )\n },\n {\n \"role\": \"user\",\n \"content\": prompt\n }\n ],\n temperature=temperature,\n max_tokens=max_tokens,\n frequency_penalty=frequency_penalty,\n top_p=top_p,\n stream=False\n )\n return response.choices[0].message.content.strip()\n\n except Exception as e:\n raise RuntimeError(f\"API Error: {str(e)}\")\n\n\ndef save_response(response, emotion, model_name, words):\n timestamp = datetime.datetime.now().strftime(\"%Y-%m-%d-%H-%M-%S\")\n directory = os.path.join(\"data\", \"raw\", emotion, model_name)\n os.makedirs(directory, exist_ok=True)\n file_path = os.path.join(directory, f\"{emotion}_{words}_{timestamp}.txt\")\n\n with open(file_path, \"w\", encoding=\"utf-8\") as f:\n f.write(response)\n\n\ndef main():\n start_time = time.time()\n\n parser = argparse.ArgumentParser()\n parser.add_argument(\"--api-key\", required=True, help=\"Klucz API DeepSeek\")\n parser.add_argument(\"--model\", choices=[\"v3\", \"r1\"], default=\"v3\", help=\"Wersja modelu (v3/r1)\")\n parser.add_argument(\"--iterations\", type=int, default=1)\n parser.add_argument(\"--temperature\", type=float, default=0.8)\n args = parser.parse_args()\n\n args.temperature = max(0.0, min(args.temperature, 2))\n\n api_client = DeepSeekClient(args.api_key, args.model)\n emotions = [\"angry\", \"disgust\", \"fear\", \"happy\", \"neutral\", \"sad\", \"surprise\"]\n\n for i in range(args.iterations):\n for words in range(1, 13):\n for emotion in emotions:\n prompt = (\n f\"Wygeneruj 50 unikalnych zdań w języku polskim spełniających kryteria:\\n\"\n f\"- Temat: różne dziedziny życia ludzi i zwierząt\\n\"\n f\"- Emocja: zdanie ma być zaklasyfikowane do emocji {emotion.capitalize()}\\n\"\n f\"- Długość: {words}-{words + 2} słów\\n\"\n f\"- Format: każde zdanie w nowej linii\\n\"\n )\n\n response = api_client.generate(\n prompt=prompt,\n temperature=args.temperature,\n frequency_penalty=0.6,\n top_p=0.9,\n max_tokens=8000,\n )\n\n if not response or len(response.split('\\n')) < 30:\n print(f\"Received incomplete response for {emotion}, {words} words\")\n continue\n\n elapsed_time = time.time() - start_time\n hours = int(elapsed_time // 3600)\n remaining_seconds = elapsed_time % 3600\n minutes = int(remaining_seconds // 60)\n seconds = int(remaining_seconds % 60)\n\n save_response(response, emotion, f\"DeepSeek-{args.model.upper()}\", words)\n print(\n f\"Emotion: {emotion.ljust(8)} | \"\n f\"Words: {words}-{words + 2} | \"\n f\"Iteration: {str(i + 1).rjust(len(str(args.iterations)))}/{args.iterations} | \"\n f\"Execution time: {str(hours).rjust(2)}h {str(minutes).rjust(2)}m {str(seconds).rjust(2)}s\"\n )\n\n time.sleep(1)\n\n\nif __name__ == \"__main__\":\n main()\n"}, "ec42bb95d2f670e99b60ffb153daa48f3d5af986": {"t": 1785764982.2865438, "n": 4738, "h": "b7ad360c6a06e10d", "c": "import argparse\nimport datetime\nimport os\nimport time\n\nfrom openai import OpenAI\n\nDEEPSEEK_BASE_URL = \"https://api.deepseek.com\"\nMODEL_MAPPING = {\n \"v3\": \"deepseek-chat\",\n \"r1\": \"deepseek-reasoner\"\n}\n\n\nclass DeepSeekClient:\n def __init__(self, api_key, model_version=\"v3\"):\n self.client = OpenAI(\n api_key=api_key,\n base_url=DEEPSEEK_BASE_URL\n )\n self.model = MODEL_MAPPING[model_version.lower()]\n\n def generate(self, prompt, temperature=0.8, frequency_penalty=0.5, top_p=0.9, max_tokens=4000):\n try:\n response = self.client.chat.completions.create(\n model=self.model,\n messages=[\n {\n \"role\": \"system\",\n \"content\": (\n \"1. Odpowiadaj wyłącznie w języku polskim\\n\"\n \"2. Formatuj odpowiedź jako lista zdań\\n\"\n \"3. Każde zdanie w nowej linii bez numeracji\\n\"\n \"4. Unikaj słów: 'Twoja', 'Twój', 'Twoje' i podobnych\\n\"\n \"5. Wygeneruj dokładnie 50 zdań spełniających kryteria.\\n\"\n # \"6. Słowa nie we wszytkich zdaniach mają być unikalne lub zastąpione synonimem.\\n\"\n \"7. Nie dodawaj żadnych komentarzy, zwrócone mają być tylko zdania\"\n )\n },\n {\n \"role\": \"user\",\n \"content\": prompt\n }\n ],\n temperature=temperature,\n max_tokens=max_tokens,\n frequency_penalty=frequency_penalty,\n top_p=top_p,\n stream=False\n )\n return response.choices[0].message.content.strip()\n\n except Exception as e:\n raise RuntimeError(f\"API Error: {str(e)}\")\n\n\ndef save_response(response, emotion, model_name, words):\n timestamp = datetime.datetime.now().strftime(\"%Y-%m-%d-%H-%M-%S\")\n directory = os.path.join(\"data\", \"raw\", emotion, model_name)\n os.makedirs(directory, exist_ok=True)\n file_path = os.path.join(directory, f\"{emotion}_{words}_{timestamp}.txt\")\n\n with open(file_path, \"w\", encoding=\"utf-8\") as f:\n f.write(response)\n\n\ndef main():\n start_time = time.time()\n\n parser = argparse.ArgumentParser()\n parser.add_argument(\"--api-key\", required=True, help=\"Klucz API DeepSeek\")\n parser.add_argument(\"--model\", choices=[\"v3\", \"r1\"], default=\"v3\", help=\"Wersja modelu (v3/r1)\")\n parser.add_argument(\"--iterations\", type=int, default=1)\n parser.add_argument(\"--temperature\", type=float, default=0.8)\n args = parser.parse_args()\n\n args.temperature = max(0.0, min(args.temperature, 2))\n\n api_client = DeepSeekClient(args.api_key, args.model)\n emotions = [\"angry\", \"disgust\", \"fear\", \"happy\", \"neutral\", \"sad\", \"surprise\"]\n\n for i in range(args.iterations):\n for words in range(1, 13):\n for emotion in emotions:\n prompt = (\n f\"Wygeneruj 50 unikalnych zdań w języku polskim spełniających kryteria:\\n\"\n f\"- Temat: różne dziedziny życia ludzi i zwierząt\\n\"\n f\"- Emocja: zdanie ma być zaklasyfikowane do emocji {emotion.capitalize()}\\n\"\n f\"- Długość: {words}-{words + 2} słów\\n\"\n f\"- Format: każde zdanie w nowej linii\\n\"\n )\n\n response = api_client.generate(\n prompt=prompt,\n temperature=args.temperature,\n frequency_penalty=0.6,\n top_p=0.9,\n max_tokens=8000,\n )\n\n if not response or len(response.split('\\n')) < 30:\n print(f\"Received incomplete response for {emotion}, {words} words\")\n continue\n\n elapsed_time = time.time() - start_time\n hours = int(elapsed_time // 3600)\n remaining_seconds = elapsed_time % 3600\n minutes = int(remaining_seconds // 60)\n seconds = int(remaining_seconds % 60)\n\n save_response(response, emotion, f\"DeepSeek-{args.model.upper()}\", words)\n print(\n f\"Emotion: {emotion.ljust(7)} | \"\n f\"Words: {words}-{words + 2} | \"\n f\"Iteration: {str(i + 1).rjust(len(str(args.iterations)))}/{args.iterations} | \"\n f\"Execution time: {str(hours).rjust(2)}h {str(minutes).rjust(2)}m {str(seconds).rjust(2)}s\"\n )\n\n time.sleep(1)\n\n\nif __name__ == \"__main__\":\n main()\n"}}}}