Merge pull request #3574 from dengpeng777/master

support zhipu-api embedding
This commit is contained in:
liunux4odoo 2024-04-16 07:10:24 +08:00 committed by GitHub
commit 3902f6d235
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -39,6 +39,8 @@ def generate_token(apikey: str, exp_seconds: int):
class ChatGLMWorker(ApiModelWorker):
DEFAULT_EMBED_MODEL = "embedding-2"
def __init__(
self,
*,
@ -84,7 +86,29 @@ class ChatGLMWorker(ApiModelWorker):
# yield {"error_code": 0, "text": text}
def do_embeddings(self, params: ApiEmbeddingsParams) -> Dict:
params.load_config(self.model_names[0])
token = generate_token(params.api_key, 60)
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {token}"
}
i = 0
batch_size = 1
result = []
while i < len(params.texts):
data = {
"model": params.embed_model or self.DEFAULT_EMBED_MODEL,
"input": "".join(params.texts[i: i + batch_size])
}
url = "https://open.bigmodel.cn/api/paas/v4/embeddings"
response = requests.post(url, headers=headers, json=data)
ans = response.json()
result.append(ans["data"][0]["embedding"])
i += batch_size
return {"code": 200, "data": result}
def get_embeddings(self, params):
print("embedding")
print(params)