| 
                        123456789101112131415161718192021222324252627282930313233343536 | 
                        - 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
 - 
 - 
 - class HostedAnthropicCredential(BaseModel):
 -     api_key: str
 - 
 - 
 - class HostedLLMCredentials(BaseModel):
 -     openai: Optional[HostedOpenAICredential] = None
 -     anthropic: Optional[HostedAnthropicCredential] = None
 - 
 - 
 - 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"))
 - 
 -     if app.config.get("ANTHROPIC_API_KEY"):
 -         hosted_llm_credentials.anthropic = HostedAnthropicCredential(api_key=app.config.get("ANTHROPIC_API_KEY"))
 
 
  |