30 lines
953 B
Python
30 lines
953 B
Python
import dashscope
|
|
from http import HTTPStatus
|
|
from backend.core.config import settings
|
|
|
|
class LLMService:
|
|
"""
|
|
LLM 服务封装层
|
|
负责与 DashScope 或其他模型供应商交互
|
|
"""
|
|
def __init__(self):
|
|
dashscope.api_key = settings.DASHSCOPE_API_KEY
|
|
|
|
def get_embedding(self, text: str, dimension: int = 1536):
|
|
"""生成文本向量"""
|
|
try:
|
|
resp = dashscope.TextEmbedding.call(
|
|
model=dashscope.TextEmbedding.Models.text_embedding_v4,
|
|
input=text,
|
|
dimension=dimension
|
|
)
|
|
if resp.status_code == HTTPStatus.OK:
|
|
return resp.output['embeddings'][0]['embedding']
|
|
else:
|
|
print(f"[ERROR] Embedding API Error: {resp}")
|
|
return None
|
|
except Exception as e:
|
|
print(f"[ERROR] Embedding Exception: {e}")
|
|
return None
|
|
|
|
llm_service = LLMService() |