Download app/utils/check_utils.py from gitdeem/dt: direct link, hf CLI and curl.
- Browser
- Download file 1.54 kB
-
https://huggingface.co/spaces/gitdeem/dt/resolve/main/app/utils/check_utils.py
- Command line
-
hf download hf://spaces/gitdeem/dt/app/utils/check_utils.py
-
curl -L -o check_utils.py https://huggingface.co/spaces/gitdeem/dt/resolve/main/app/utils/check_utils.py
1.54 kB
| # utils/ai_utils.py | |
| import openai | |
| from io import BytesIO | |
| import fitz # PyMuPDF | |
| import logging | |
| class AIChecker: | |
| def check_openai_connection(api_url: str, api_key: str, model: str, timeout: int = 10): | |
| """OpenAI连通性测试""" | |
| try: | |
| openai.api_key = api_key | |
| openai.base_url = api_url | |
| # 发送一个简单的聊天请求 | |
| response = openai.chat.completions.create( | |
| model=model, | |
| messages=[{"role": "user", "content": "hi"}], | |
| timeout=timeout | |
| ) | |
| # 返回连接成功和响应内容 | |
| return True, response.choices[0].message.content | |
| except Exception as e: | |
| logging.error(f"OpenAI连接测试失败: {str(e)}") | |
| return False, str(e) | |
| def check_pdf_scanned(file_stream: BytesIO): | |
| """PDF扫描件检测""" | |
| try: | |
| file_stream.seek(0) | |
| doc = fitz.open(stream=file_stream.read(), filetype="pdf") | |
| pages_to_check = min(5, len(doc)) | |
| for page_num in range(pages_to_check): | |
| page = doc[page_num] | |
| if page.get_text().strip(): # 发现可编辑文本 | |
| return False | |
| if page.get_images(): # 发现图像 | |
| return True | |
| return False | |
| except Exception as e: | |
| logging.error(f"PDF检测失败: {str(e)}") | |
| raise | |