Files
slide-translate/llm.py
T
nite 1c1c68a214 refactor: 统一使用 OpenAI 兼容 API,支持自定义 base_url/key/model
- 移除 Gemini 和 Ollama 独立适配,统一使用 ChatOpenAI + base_url
- config.ini 简化为 BASE_URL / API_KEY / MODEL / TEMPERATURE / MAX_RETRIES
- 新增 config.example.ini 示例配置
- 移除 langchain-google-genai / langchain-ollama / pymupdf 依赖
- main.py 新增断点续跑:跳过已有 index.md / index_refined.md
- LLM 请求支持 max_retries 自动重试(默认 3 次)
- 优化 README
2026-04-18 18:42:42 +10:00

41 lines
1.1 KiB
Python
Executable File

import configparser
import os
def set_api_key() -> None:
config = configparser.ConfigParser()
config.read("config.ini")
api_key = config.get("llm", "API_KEY", fallback=None)
if not os.environ.get("OPENAI_API_KEY"):
if api_key:
os.environ["OPENAI_API_KEY"] = api_key
else:
raise ValueError(
"Error: API_KEY not found in config.ini or environment variables"
)
def get_base_url() -> str | None:
config = configparser.ConfigParser()
config.read("config.ini")
base_url = config.get("llm", "BASE_URL", fallback=None)
return base_url or os.environ.get("OPENAI_BASE_URL")
def get_model_name() -> str:
config = configparser.ConfigParser()
config.read("config.ini")
return config.get("llm", "MODEL", fallback="gpt-4o")
def get_temperature() -> float:
config = configparser.ConfigParser()
config.read("config.ini")
return float(config.get("llm", "TEMPERATURE", fallback=0.7))
def get_max_retries() -> int:
config = configparser.ConfigParser()
config.read("config.ini")
return int(config.get("llm", "MAX_RETRIES", fallback=3))