Spaces:
Running
Running
File size: 5,771 Bytes
e70c280 bed78d7 e70c280 eb60b6b e70c280 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | from src.adapters.cache import CacheAdapter
from src.adapters.data import DataAdapter
from src.adapters.embeddings import EmbeddingsAdapter, VectorStoreAdapter
from src.adapters.graph import GraphAdapter
from src.adapters.llm import LLMAdapter
from src.config import config
from src.lib.redis.client import _redis_client
def _build_small_llm(provider: str):
if provider == "ollama":
from src.lib.llm.client_ollama import _llm_small_client
return _llm_small_client
if provider == "azure":
from src.lib.llm.client_azure import _llm_small_client_azure
return _llm_small_client_azure
if provider == "openai":
from src.lib.llm.client_openai import _llm_small_client_openai
return _llm_small_client_openai
if provider == "anthropic":
from src.lib.llm.client_anthropic import _llm_small_client_anthropic
return _llm_small_client_anthropic
if provider == "deepseek":
from src.lib.llm.client_deepseek import _llm_small_client_deepseek
return _llm_small_client_deepseek
if provider == "gcp_vertex":
from src.lib.llm.client_small import _llm_small_client
return _llm_small_client
if provider == "amazon_bedrock":
from src.lib.llm.client_bedrock import _llm_small_client_bedrock
return _llm_small_client_bedrock
raise ValueError(f"Unsupported small LLM provider: {provider}")
def _build_large_llm(provider: str):
if provider == "ollama":
from src.lib.llm.client_ollama import _llm_large_client
return _llm_large_client
if provider == "azure":
from src.lib.llm.client_large import _llm_large_client
return _llm_large_client
if provider == "openai":
from src.lib.llm.client_openai import _llm_large_client_openai
return _llm_large_client_openai
if provider == "anthropic":
from src.lib.llm.client_anthropic import _llm_large_client_anthropic
return _llm_large_client_anthropic
if provider == "deepseek":
from src.lib.llm.client_deepseek import _llm_large_client_deepseek
return _llm_large_client_deepseek
if provider == "gcp_vertex":
from src.lib.llm.client_vertex import _llm_large_client_vertex
return _llm_large_client_vertex
if provider == "amazon_bedrock":
from src.lib.llm.client_bedrock import _llm_large_client_bedrock
return _llm_large_client_bedrock
raise ValueError(f"Unsupported large LLM provider: {provider}")
def _build_embeddings(provider: str):
if provider == "mock":
from src.lib.embeddings.client_mock import _mock_embeddings_client
return _mock_embeddings_client
if provider == "fastembed":
from src.lib.embeddings.client_fastembed import _fastembed_client
return _fastembed_client
if provider == "ollama":
from src.lib.embeddings.client_ollama import _embeddings_ollama_client
return _embeddings_ollama_client
if provider == "azure":
from src.lib.embeddings.client import _embeddings_client
return _embeddings_client
if provider == "openai":
from src.lib.embeddings.client_openai import _embeddings_openai_client
return _embeddings_openai_client
if provider == "gcp_vertex":
from src.lib.embeddings.client_vertex import _embeddings_vertex_client
return _embeddings_vertex_client
if provider == "amazon_bedrock":
from src.lib.embeddings.client_bedrock import _embeddings_bedrock_client
return _embeddings_bedrock_client
raise ValueError(f"Unsupported embeddings provider: {provider}")
_llm_small = LLMAdapter()
_llm_small.add_client(_build_small_llm(config.llm_small_provider))
_llm_large = LLMAdapter()
_llm_large.add_client(_build_large_llm(config.llm_large_provider))
llm_small_adapter = _llm_small
llm_large_adapter = _llm_large
cache_adapter = CacheAdapter()
cache_adapter.add_client(_redis_client)
graph_adapter = GraphAdapter()
if config.graph_db == "neo4j":
from src.lib.neo4j.client import _neo4j_client
graph_adapter.add_client(_neo4j_client)
elif config.graph_db == "networkx":
from src.lib.postgresql.networkx import get_networkx_graph_client
graph_adapter.add_client(get_networkx_graph_client())
if config.data_db == "mongo":
from src.lib.mongo.client import _mongo_client
data_adapter = DataAdapter()
data_adapter.add_client(_mongo_client)
elif config.data_db == "postgresql":
from src.lib.postgresql.data import get_postgresql_data_client
data_adapter = DataAdapter()
data_adapter.add_client(get_postgresql_data_client())
_embeddings_primary = EmbeddingsAdapter()
_embeddings_primary.add_client(_build_embeddings(config.embeddings_provider))
_embeddings_small = EmbeddingsAdapter()
if config.models_mode == "remote" or config.embeddings_provider == "ollama":
# Keep remote mode free of local torch/sentence-transformers.
# Architect similarity checks still work as long as both sides share a space.
_embeddings_small.add_client(_build_embeddings(config.embeddings_provider))
else:
from src.lib.embeddings.client_small import _embeddings_small_client
_embeddings_small.add_client(_embeddings_small_client)
embeddings_adapter = _embeddings_primary
embeddings_small_adapter = _embeddings_small
if config.vector_db == "milvus":
from src.lib.milvus.client import _milvus_client
vector_store_adapter = VectorStoreAdapter()
vector_store_adapter.add_client(_milvus_client)
elif config.vector_db == "postgresql":
from src.lib.postgresql.vectors import get_postgresql_vector_store_client
vector_store_adapter = VectorStoreAdapter()
vector_store_adapter.add_client(get_postgresql_vector_store_client())
|