mirror of
https://github.com/LostRuins/koboldcpp.git
synced 2026-08-15 19:35:07 +00:00
ollama embeddings endpoint
This commit is contained in:
parent
849ec89bad
commit
4790b912c7
1 changed files with 19 additions and 14 deletions
33
koboldcpp.py
33
koboldcpp.py
|
|
@ -4842,7 +4842,7 @@ class KcppProxyHandler(http.server.BaseHTTPRequestHandler):
|
|||
is_chat_completions_path = (clean_path.endswith('/v1/chat/completions') or clean_path=='/chat/completions')
|
||||
|
||||
#any requests to the following endpoints is capable of waking the server
|
||||
wake_requests = ["/api/extra/generate/stream","/api/extra/tokencount","/api/v1/generate","/sdapi/v1/interrogate","/v1/completions","/v1/chat/completions","/v1/responses","/completions","/chat/completions","/responses","/api/extra/transcribe","/v1/audio/transcriptions","/api/extra/tts","/v1/audio/speech","/api/extra/embeddings","/v1/embeddings","/api/extra/music/prepare","/api/extra/music/generate","/sdapi/v1/txt2img","/sdapi/v1/img2img","/sdapi/v1/upscale"]
|
||||
wake_requests = ["/api/extra/generate/stream","/api/extra/tokencount","/api/v1/generate","/sdapi/v1/interrogate","/v1/completions","/v1/chat/completions","/v1/responses","/completions","/chat/completions","/responses","/api/extra/transcribe","/v1/audio/transcriptions","/api/extra/tts","/v1/audio/speech","/api/extra/embeddings","/v1/embeddings","/api/embed","/api/extra/music/prepare","/api/extra/music/generate","/sdapi/v1/txt2img","/sdapi/v1/img2img","/sdapi/v1/upscale"]
|
||||
is_wake_request = clean_path in wake_requests
|
||||
|
||||
autoswapEnabled = global_memory["autoswapmode"] is not None and global_memory["autoswapmode"]
|
||||
|
|
@ -4894,7 +4894,7 @@ class KcppProxyHandler(http.server.BaseHTTPRequestHandler):
|
|||
textReqs = ["/api/extra/generate/stream","/api/extra/tokencount","/api/v1/generate","/sdapi/v1/interrogate","/v1/completions","/v1/chat/completions","/v1/responses","/completions","/chat/completions","/responses"]
|
||||
sttReqs = ["/api/extra/transcribe","/v1/audio/transcriptions"]
|
||||
ttsReqs = ["/api/extra/tts", "/v1/audio/speech"]
|
||||
embedReqs = ["/api/extra/embeddings", "/v1/embeddings"]
|
||||
embedReqs = ["/api/extra/embeddings", "/v1/embeddings", "/api/embed"]
|
||||
musicReqs = ["/api/extra/music/prepare","/api/extra/music/generate"]
|
||||
imageReqs = ["/sdapi/v1/txt2img", "/sdapi/v1/img2img", "/sdapi/v1/upscale"] # "/sdapi/v1/sd-models", "/sdapi/v1/options", "/sdapi/v1/samplers"
|
||||
|
||||
|
|
@ -6905,6 +6905,7 @@ Change Mode<br>
|
|||
is_transcribe = False
|
||||
is_tts = False
|
||||
is_embeddings = False
|
||||
is_ollama_embeddings = False
|
||||
is_music_codes = False
|
||||
is_music_audio = False
|
||||
response_body = None
|
||||
|
|
@ -7009,8 +7010,9 @@ Change Mode<br>
|
|||
is_transcribe = True
|
||||
elif clean_path.endswith('/api/extra/tts') or clean_path.endswith('/v1/audio/speech') or clean_path=="/audio/speech" or clean_path.endswith('/tts_to_audio'):
|
||||
is_tts = True
|
||||
elif clean_path.endswith('/api/extra/embeddings') or clean_path.endswith('/v1/embeddings'):
|
||||
elif clean_path.endswith('/api/extra/embeddings') or clean_path.endswith('/v1/embeddings') or clean_path=="/api/embed":
|
||||
is_embeddings = True
|
||||
is_ollama_embeddings = (clean_path=="/api/embed")
|
||||
elif clean_path.endswith('/api/extra/music/prepare'):
|
||||
is_music_codes = True
|
||||
elif clean_path.endswith('/api/extra/music/generate'):
|
||||
|
|
@ -7470,17 +7472,20 @@ Change Mode<br>
|
|||
if autoswapmode and embedName is not None:
|
||||
modelNameToReturn = embedName
|
||||
gendat = embeddings_generate(genparams)
|
||||
outdatas = []
|
||||
odidx = 0
|
||||
for od in gendat["data"]:
|
||||
if genparams.get("encoding_format", "")=="base64":
|
||||
binary_data = struct.pack('<' + 'f' * len(od), *od)
|
||||
b64_string = base64.b64encode(binary_data).decode('utf-8')
|
||||
outdatas.append({"object":"embedding","index":odidx,"embedding":b64_string})
|
||||
else:
|
||||
outdatas.append({"object":"embedding","index":odidx,"embedding":od})
|
||||
odidx += 1
|
||||
genresp = (json.dumps({"object":"list","data":outdatas,"model":modelNameToReturn,"usage":{"prompt_tokens":gendat["count"],"total_tokens":gendat["count"]}}).encode())
|
||||
if is_ollama_embeddings:
|
||||
genresp = (json.dumps({"model":modelNameToReturn,"embeddings":gendat["data"],"total_duration":1,"load_duration":1,"prompt_eval_count":gendat["count"]}).encode())
|
||||
else:
|
||||
outdatas = []
|
||||
odidx = 0
|
||||
for od in gendat["data"]:
|
||||
if genparams.get("encoding_format", "")=="base64":
|
||||
binary_data = struct.pack('<' + 'f' * len(od), *od)
|
||||
b64_string = base64.b64encode(binary_data).decode('utf-8')
|
||||
outdatas.append({"object":"embedding","index":odidx,"embedding":b64_string})
|
||||
else:
|
||||
outdatas.append({"object":"embedding","index":odidx,"embedding":od})
|
||||
odidx += 1
|
||||
genresp = (json.dumps({"object":"list","data":outdatas,"model":modelNameToReturn,"usage":{"prompt_tokens":gendat["count"],"total_tokens":gendat["count"]}}).encode())
|
||||
self.send_response(200)
|
||||
self.send_header('content-length', str(len(genresp)))
|
||||
self.end_headers(content_type='application/json')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue