from dotenv import load_dotenv import os, sys from openai import OpenAI import time load_dotenv() # initialize then client DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY") DEEPSEEK_API_URL = os.getenv("DEEPSEEK_API_URL") MODEL = "deepseek-chat" client = OpenAI( api_key=DEEPSEEK_API_KEY, base_url=DEEPSEEK_API_URL, ) MAX_RETRIES = 3 RETRY_DELAY = 2 # seconds count = 0 system_prompt = "You are a helpful assistant. You can convert text notes to markdown format. These notes are \ in Question and Answer format. for example: Create two namespaces and name them ns1 and ns2 \n k create ns ns1 \n \ k create ns ns2. where k create ns ns1 and k create ns ns2 are answers. Sometoimees questions can be more than one line, \ and each of Q&A are separated by a empty line. Please make question as header and fomrat ansers in correct markdown format. \ Most of the ansers are code snippets. Please only return the markdown content. " content = "" with open("k8s_day10.txt", "r") as f: for line in f: content += line def chat_with_deepseek(max_retries: int =MAX_RETRIES, retry_delay: int =RETRY_DELAY): count = 0 for _ in range(max_retries): try: response = client.chat.completions.create( model=MODEL, messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": f"please covert notes below to markdown format: \n {content} "}, ], stream=True, ) for chunk in response: text = chunk.choices[0].delta.content if text: sys.stdout.write(text) sys.stdout.flush() break except Exception as e: count += 1 if count < max_retries: print(f"An error occurre: {e}. Retrying in {retry_delay} seconds...") time.sleep(retry_delay) else: print("Max retries reached. Exiting.") break chat_with_deepseek()