forked from React-Group/interstellar_ai
		
	Merge branch 'main' into main
This commit is contained in:
		
						commit
						2c8145316f
					
				
					 5 changed files with 43 additions and 13 deletions
				
			
		
							
								
								
									
										32
									
								
								py/ai.py
									
										
									
									
									
								
							
							
						
						
									
										32
									
								
								py/ai.py
									
										
									
									
									
								
							|  | @ -1,5 +1,6 @@ | ||||||
| from mistralai import Mistral | from mistralai import Mistral | ||||||
| from openai import OpenAI | from openai import OpenAI | ||||||
|  | import google.generativeai as genai | ||||||
| import anthropic | import anthropic | ||||||
| import ollama | import ollama | ||||||
| 
 | 
 | ||||||
|  | @ -72,3 +73,34 @@ class AI: | ||||||
|             for text in stream.text_stream: |             for text in stream.text_stream: | ||||||
|                 with return_class.ai_response_lock: |                 with return_class.ai_response_lock: | ||||||
|                     return_class.ai_response[access_token] += text |                     return_class.ai_response[access_token] += text | ||||||
|  | 
 | ||||||
|  |     @staticmethod | ||||||
|  |     def process_google(model, messages, return_class, access_token, api_key): | ||||||
|  | 
 | ||||||
|  |         message = messages[-1]['content'] | ||||||
|  |         messages.pop() | ||||||
|  | 
 | ||||||
|  |         system = None | ||||||
|  |         if messages and messages[0]['role'] == 'system': | ||||||
|  |             system = messages[0]['content'] | ||||||
|  |             messages.pop(0) | ||||||
|  | 
 | ||||||
|  |         for msg in messages: | ||||||
|  |             msg['parts'] = msg.pop('content') | ||||||
|  | 
 | ||||||
|  |         for msg in messages: | ||||||
|  |             if msg['role'] == 'assistant': | ||||||
|  |                 msg['role'] = 'model' | ||||||
|  | 
 | ||||||
|  |         genai.configure(api_key=api_key) | ||||||
|  | 
 | ||||||
|  |         model = genai.GenerativeModel(model) | ||||||
|  | 
 | ||||||
|  |         chat = model.start_chat( | ||||||
|  |             system_instruction=system, | ||||||
|  |             history=messages | ||||||
|  |         ) | ||||||
|  | 
 | ||||||
|  |         response = chat.send_message(message, stream=True) | ||||||
|  |         for chunk in response: | ||||||
|  |             return_class.ai_response[access_token] += chunk.text | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								py/api.py
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								py/api.py
									
										
									
									
									
								
							|  | @ -42,19 +42,22 @@ class API: | ||||||
|                 return jsonify({'status': 200}) |                 return jsonify({'status': 200}) | ||||||
|             elif model_type == "mistral": |             elif model_type == "mistral": | ||||||
|                 api_key = data.get('api_key') |                 api_key = data.get('api_key') | ||||||
|                 thread = threading.Thread(target=self.ai.process_mistralai, args=(ai_model, messages, self, access_token, api_key)) |                 thread = threading.Thread(target=self.ai.process_mistralai, | ||||||
|  |                                           args=(ai_model, messages, self, access_token, api_key)) | ||||||
|                 thread.start() |                 thread.start() | ||||||
|                 thread.join() |                 thread.join() | ||||||
|                 return jsonify({'status': 200}) |                 return jsonify({'status': 200}) | ||||||
|             elif model_type == "openai": |             elif model_type == "openai": | ||||||
|                 api_key = data.get('api_key') |                 api_key = data.get('api_key') | ||||||
|                 thread = threading.Thread(target=self.ai.process_openai, args=(ai_model, messages, self, access_token, api_key)) |                 thread = threading.Thread(target=self.ai.process_openai, | ||||||
|  |                                           args=(ai_model, messages, self, access_token, api_key)) | ||||||
|                 thread.start() |                 thread.start() | ||||||
|                 thread.join() |                 thread.join() | ||||||
|                 return jsonify({'status': 200}) |                 return jsonify({'status': 200}) | ||||||
|             elif model_type == "anthropic": |             elif model_type == "anthropic": | ||||||
|                 api_key = data.get('api_key') |                 api_key = data.get('api_key') | ||||||
|                 thread = threading.Thread(target=self.ai.process_anthropic, args=(ai_model, messages, self, access_token, api_key)) |                 thread = threading.Thread(target=self.ai.process_anthropic, | ||||||
|  |                                           args=(ai_model, messages, self, access_token, api_key)) | ||||||
|                 thread.start() |                 thread.start() | ||||||
|                 thread.join() |                 thread.join() | ||||||
|                 return jsonify({'status': 200}) |                 return jsonify({'status': 200}) | ||||||
|  | @ -118,3 +121,7 @@ class API: | ||||||
| 
 | 
 | ||||||
|         ssl_context = ("cert.pem", "key.pem") |         ssl_context = ("cert.pem", "key.pem") | ||||||
|         self.app.run(debug=True, host='0.0.0.0', port=5000) |         self.app.run(debug=True, host='0.0.0.0', port=5000) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | api = API() | ||||||
|  | api.run() | ||||||
|  |  | ||||||
|  | @ -5,4 +5,3 @@ mistralai | ||||||
| openai | openai | ||||||
| anthropic | anthropic | ||||||
| pyOpenSSL | pyOpenSSL | ||||||
| pywebview |  | ||||||
|  | @ -1,7 +0,0 @@ | ||||||
| import os |  | ||||||
| import webview |  | ||||||
| 
 |  | ||||||
| os.system("python api.py") |  | ||||||
| webview.create_window('Hello world', 'http://localhost:3000') |  | ||||||
| webview.start() |  | ||||||
| 
 |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| 
 |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue