Files
llmproxy/app/core/config.py
Vertex-AI-Step-Builder 3f9dbb5448 feat: 实现完整的 OpenAI 兼容工具调用代理功能
新增功能:
- 实现 ResponseParser 模块,支持解析 LLM 响应中的工具调用
- 支持双花括号格式的工具调用 {{...}}
- 工具调用智能解析,处理嵌套 JSON 结构
- 生成符合 OpenAI 规范的 tool_call ID
- 完善的数据库日志记录功能

核心特性:
- 低耦合高内聚的架构设计
- 完整的单元测试覆盖(23个测试全部通过)
- 100% 兼容 OpenAI REST API tools 字段行为
- 支持流式和非流式响应
- 支持 content + tool_calls 混合响应

技术实现:
- response_parser.py: 响应解析器模块
- services.py: 业务逻辑层(工具注入、响应处理)
- models.py: 数据模型定义
- main.py: API 端点和请求处理
- database.py: SQLite 数据库操作

测试覆盖:
- 工具调用解析(各种格式)
- 流式响应处理
- 原生 OpenAI 格式支持
- 边缘情况处理

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 08:46:11 +00:00

20 lines
610 B
Python

import os
from pydantic import BaseModel
from typing import Optional
from dotenv import load_dotenv
class Settings(BaseModel):
"""Manages application settings and configurations."""
REAL_LLM_API_URL: Optional[str] = None
REAL_LLM_API_KEY: Optional[str] = None
def get_settings() -> Settings:
"""
Returns an instance of the Settings object by loading from environment variables.
"""
load_dotenv() # Load environment variables from .env file
return Settings(
REAL_LLM_API_URL=os.getenv("REAL_LLM_API_URL"),
REAL_LLM_API_KEY=os.getenv("REAL_LLM_API_KEY"),
)