| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | import os | 
					
						
							|  |  |  | from typing import Optional | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import langchain | 
					
						
							|  |  |  | from flask import Flask | 
					
						
							|  |  |  | from pydantic import BaseModel | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from core.callback_handler.std_out_callback_handler import DifyStdOutCallbackHandler | 
					
						
							|  |  |  | from core.prompt.prompt_template import OneLineFormatter | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class HostedOpenAICredential(BaseModel): | 
					
						
							|  |  |  |     api_key: str | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-17 00:14:19 +08:00
										 |  |  | class HostedAnthropicCredential(BaseModel): | 
					
						
							|  |  |  |     api_key: str | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | class HostedLLMCredentials(BaseModel): | 
					
						
							|  |  |  |     openai: Optional[HostedOpenAICredential] = None | 
					
						
							| 
									
										
										
										
											2023-07-17 00:14:19 +08:00
										 |  |  |     anthropic: Optional[HostedAnthropicCredential] = None | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | hosted_llm_credentials = HostedLLMCredentials() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def init_app(app: Flask): | 
					
						
							|  |  |  |     if os.environ.get("DEBUG") and os.environ.get("DEBUG").lower() == 'true': | 
					
						
							|  |  |  |         langchain.verbose = True | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if app.config.get("OPENAI_API_KEY"): | 
					
						
							|  |  |  |         hosted_llm_credentials.openai = HostedOpenAICredential(api_key=app.config.get("OPENAI_API_KEY")) | 
					
						
							| 
									
										
										
										
											2023-07-17 00:14:19 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if app.config.get("ANTHROPIC_API_KEY"): | 
					
						
							|  |  |  |         hosted_llm_credentials.anthropic = HostedAnthropicCredential(api_key=app.config.get("ANTHROPIC_API_KEY")) |