Upload 4 files
Browse files
api.py
CHANGED
|
@@ -123,7 +123,7 @@ def create_session(apikey, external_user_id=None):
|
|
| 123 |
raise
|
| 124 |
|
| 125 |
# 处理流式请求
|
| 126 |
-
def handle_stream_request(apikey, session_id, query, endpoint_id, model_name):
|
| 127 |
url = f"{ONDEMAND_API_BASE}/sessions/{session_id}/query"
|
| 128 |
payload = {
|
| 129 |
"query": query,
|
|
@@ -131,9 +131,11 @@ def handle_stream_request(apikey, session_id, query, endpoint_id, model_name):
|
|
| 131 |
"pluginIds": [],
|
| 132 |
"responseMode": "stream",
|
| 133 |
"modelConfigs": {
|
| 134 |
-
"fulfillmentPrompt": "--No Use\n{context}\n--No Use--\n" + CLAUDE_SYSTEM_PROMPT + "{question}"
|
|
|
|
| 135 |
}
|
| 136 |
}
|
|
|
|
| 137 |
|
| 138 |
headers = {
|
| 139 |
"apikey": apikey,
|
|
@@ -205,14 +207,20 @@ def handle_stream_request(apikey, session_id, query, endpoint_id, model_name):
|
|
| 205 |
raise
|
| 206 |
|
| 207 |
# 处理非流式请求
|
| 208 |
-
def handle_non_stream_request(apikey, session_id, query, endpoint_id, model_name):
|
| 209 |
url = f"{ONDEMAND_API_BASE}/sessions/{session_id}/query"
|
| 210 |
payload = {
|
| 211 |
"query": query,
|
| 212 |
"endpointId": endpoint_id,
|
| 213 |
"pluginIds": [],
|
| 214 |
-
"responseMode": "sync"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 215 |
}
|
|
|
|
|
|
|
| 216 |
headers = {"apikey": apikey, "Content-Type": "application/json"}
|
| 217 |
|
| 218 |
try:
|
|
@@ -257,6 +265,7 @@ def chat_completions():
|
|
| 257 |
model = data.get("model", "gpt-4o")
|
| 258 |
endpoint_id = get_endpoint_id(model)
|
| 259 |
is_stream = bool(data.get("stream", False))
|
|
|
|
| 260 |
|
| 261 |
# 格式化消息
|
| 262 |
formatted_messages = []
|
|
@@ -303,7 +312,7 @@ def chat_completions():
|
|
| 303 |
if is_stream:
|
| 304 |
try:
|
| 305 |
return Response(
|
| 306 |
-
handle_stream_request(apikey, session_id, query, endpoint_id, model),
|
| 307 |
content_type='text/event-stream'
|
| 308 |
)
|
| 309 |
except ValueError as ve:
|
|
@@ -315,7 +324,7 @@ def chat_completions():
|
|
| 315 |
raise # 其他ValueError或超过重试次数,重新抛出
|
| 316 |
else:
|
| 317 |
try:
|
| 318 |
-
return handle_non_stream_request(apikey, session_id, query, endpoint_id, model)
|
| 319 |
except ValueError as ve:
|
| 320 |
# 捕获空回复异常
|
| 321 |
if "空回复" in str(ve) and empty_response_retries < max_empty_retries:
|
|
|
|
| 123 |
raise
|
| 124 |
|
| 125 |
# 处理流式请求
|
| 126 |
+
def handle_stream_request(apikey, session_id, query, endpoint_id, model_name, temperature=None):
|
| 127 |
url = f"{ONDEMAND_API_BASE}/sessions/{session_id}/query"
|
| 128 |
payload = {
|
| 129 |
"query": query,
|
|
|
|
| 131 |
"pluginIds": [],
|
| 132 |
"responseMode": "stream",
|
| 133 |
"modelConfigs": {
|
| 134 |
+
"fulfillmentPrompt": "--No Use\n{context}\n--No Use--\n" + CLAUDE_SYSTEM_PROMPT + "{question}",
|
| 135 |
+
"temperature": temperature
|
| 136 |
}
|
| 137 |
}
|
| 138 |
+
logging.info("Temperature: %s", temperature)
|
| 139 |
|
| 140 |
headers = {
|
| 141 |
"apikey": apikey,
|
|
|
|
| 207 |
raise
|
| 208 |
|
| 209 |
# 处理非流式请求
|
| 210 |
+
def handle_non_stream_request(apikey, session_id, query, endpoint_id, model_name, temperature=None):
|
| 211 |
url = f"{ONDEMAND_API_BASE}/sessions/{session_id}/query"
|
| 212 |
payload = {
|
| 213 |
"query": query,
|
| 214 |
"endpointId": endpoint_id,
|
| 215 |
"pluginIds": [],
|
| 216 |
+
"responseMode": "sync",
|
| 217 |
+
"modelConfigs": {
|
| 218 |
+
"fulfillmentPrompt": "--No Use\n{context}\n--No Use--\n" + CLAUDE_SYSTEM_PROMPT + "{question}",
|
| 219 |
+
"temperature": temperature
|
| 220 |
+
}
|
| 221 |
}
|
| 222 |
+
logging.info("Temperature: %s", temperature)
|
| 223 |
+
|
| 224 |
headers = {"apikey": apikey, "Content-Type": "application/json"}
|
| 225 |
|
| 226 |
try:
|
|
|
|
| 265 |
model = data.get("model", "gpt-4o")
|
| 266 |
endpoint_id = get_endpoint_id(model)
|
| 267 |
is_stream = bool(data.get("stream", False))
|
| 268 |
+
temperature = data.get("temperature")
|
| 269 |
|
| 270 |
# 格式化消息
|
| 271 |
formatted_messages = []
|
|
|
|
| 312 |
if is_stream:
|
| 313 |
try:
|
| 314 |
return Response(
|
| 315 |
+
handle_stream_request(apikey, session_id, query, endpoint_id, model, temperature),
|
| 316 |
content_type='text/event-stream'
|
| 317 |
)
|
| 318 |
except ValueError as ve:
|
|
|
|
| 324 |
raise # 其他ValueError或超过重试次数,重新抛出
|
| 325 |
else:
|
| 326 |
try:
|
| 327 |
+
return handle_non_stream_request(apikey, session_id, query, endpoint_id, model, temperature)
|
| 328 |
except ValueError as ve:
|
| 329 |
# 捕获空回复异常
|
| 330 |
if "空回复" in str(ve) and empty_response_retries < max_empty_retries:
|