封装fastAPI openAI接口规范

This commit is contained in:
jeremygan2021
2025-11-04 23:57:37 +08:00
parent a75989c3e6
commit 8a9aef87aa
15 changed files with 904 additions and 7 deletions

View File

@@ -21,8 +21,21 @@ class SimpleRagConfig(ToolConfig, KeyConfig):
model_name:str = "text-embedding-v4"
"""embedding model name"""
folder_path:str = "/home/smith/projects/work/langchain-agent/assets/xiaozhan_emb"
"""path to local database"""
folder_path:str = "/Users/jeremygan/Desktop/TangledupAI/lang-agent/assets/xiaozhan_emb"
"""path to docker database"""
# @property
# def folder_path(self) -> str:
# """Dynamically determine the folder path for the vector store"""
# # Check if environment variable is set
# env_path = os.environ.get("RAG_FOLDER_PATH")
# if env_path:
# return env_path
# # Default to relative path from current working directory
# return os.path.join(os.getcwd(), "assets", "xiaozhan_emb")
@@ -31,8 +44,19 @@ class SimpleRag(LangToolBase):
self.config = config
self.emb = QwenEmbeddings(self.config.api_key,
self.config.model_name)
# Determine the folder path dynamically
# folder_path = os.environ.get("RAG_FOLDER_PATH")
# if not folder_path:
# # Default to relative path from current working directory
# folder_path = os.path.join(os.getcwd(), "assets", "xiaozhan_emb")
# logger.info(f"Loading FAISS index from: {folder_path}")
folder_path = "/Users/jeremygan/Desktop/TangledupAI/lang-agent/assets/xiaozhan_emb"
self.vec_store = FAISS.load_local(
folder_path=self.config.folder_path,
folder_path=folder_path,
embeddings=self.emb,
allow_dangerous_deserialization=True # Required for LangChain >= 0.1.1
)

0
lang_agent/test.py Normal file
View File

View File

@@ -6,14 +6,14 @@ import inspect
import asyncio
import os.path as osp
from loguru import logger
from fastmcp.tools.tool import FunctionTool
from fastmcp.tools.tool import Tool
from lang_agent.config import InstantiateConfig, ToolConfig
from lang_agent.base import LangToolBase
from lang_agent.rag.simple import SimpleRagConfig
from lang_agent.dummy.calculator import CalculatorConfig
from catering_end.lang_tool import CartToolConfig, CartTool
# from catering_end.lang_tool import CartToolConfig, CartTool
from langchain_core.tools.structured import StructuredTool
import jax
@@ -26,7 +26,7 @@ class ToolManagerConfig(InstantiateConfig):
# tool configs here; MUST HAVE 'config' in name and must be dataclass
rag_config: SimpleRagConfig = field(default_factory=SimpleRagConfig)
cart_config: CartToolConfig = field(default_factory=CartToolConfig)
# cart_config: CartToolConfig = field(default_factory=CartToolConfig)
calc_config: CalculatorConfig = field(default_factory=CalculatorConfig)
@@ -78,7 +78,7 @@ class ToolManager:
def _get_tool_fnc(self, tool_obj:LangToolBase)->List:
fnc_list = []
for fnc in tool_obj.get_tool_fnc():
if isinstance(fnc, FunctionTool):
if isinstance(fnc, Tool):
fnc = fnc.fn
fnc_list.append(fnc)