|  | import ast | 
					
						
						|  | import httpx | 
					
						
						|  | import json | 
					
						
						|  | import re | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | chat_api = "http://127.0.0.1:23333" | 
					
						
						|  | api_key = "sk-xxxxx" | 
					
						
						|  | requests_headers = {} | 
					
						
						|  | requests_payload = { | 
					
						
						|  | "model": "mixtral-8x7b", | 
					
						
						|  | "messages": [ | 
					
						
						|  | { | 
					
						
						|  | "role": "user", | 
					
						
						|  | "content": "what is your model", | 
					
						
						|  | } | 
					
						
						|  | ], | 
					
						
						|  | "stream": True, | 
					
						
						|  | } | 
					
						
						|  |  | 
					
						
						|  | with httpx.stream( | 
					
						
						|  | "POST", | 
					
						
						|  | chat_api + "/chat/completions", | 
					
						
						|  | headers=requests_headers, | 
					
						
						|  | json=requests_payload, | 
					
						
						|  | timeout=httpx.Timeout(connect=20, read=60, write=20, pool=None), | 
					
						
						|  | ) as response: | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | response_content = "" | 
					
						
						|  | for line in response.iter_lines(): | 
					
						
						|  | remove_patterns = [r"^\s*data:\s*", r"^\s*\[DONE\]\s*"] | 
					
						
						|  | for pattern in remove_patterns: | 
					
						
						|  | line = re.sub(pattern, "", line).strip() | 
					
						
						|  |  | 
					
						
						|  | if line: | 
					
						
						|  | try: | 
					
						
						|  | line_data = json.loads(line) | 
					
						
						|  | except Exception as e: | 
					
						
						|  | try: | 
					
						
						|  | line_data = ast.literal_eval(line) | 
					
						
						|  | except: | 
					
						
						|  | print(f"Error: {line}") | 
					
						
						|  | raise e | 
					
						
						|  |  | 
					
						
						|  | delta_data = line_data["choices"][0]["delta"] | 
					
						
						|  | finish_reason = line_data["choices"][0]["finish_reason"] | 
					
						
						|  | if "role" in delta_data: | 
					
						
						|  | role = delta_data["role"] | 
					
						
						|  | if "content" in delta_data: | 
					
						
						|  | delta_content = delta_data["content"] | 
					
						
						|  | response_content += delta_content | 
					
						
						|  | print(delta_content, end="", flush=True) | 
					
						
						|  | if finish_reason == "stop": | 
					
						
						|  | print() | 
					
						
						|  |  |