Spaces:
Sleeping
Sleeping
Update api.py
Browse files
api.py
CHANGED
@@ -195,33 +195,7 @@ def generate_text_mirostat_top_p(model, prompt, max_len=100, max_gen=98,
|
|
195 |
yield decoded_text
|
196 |
break
|
197 |
|
198 |
-
async def async_generator_wrapper(prompt: str):
|
199 |
-
# 동기 제너레이터를 비동기로 감싸기
|
200 |
-
loop = asyncio.get_event_loop()
|
201 |
-
gen = generate_text_mirostat_top_p(model, prompt)
|
202 |
-
|
203 |
-
for text_piece in gen:
|
204 |
-
yield text_piece
|
205 |
-
# 토큰 생성 속도 조절 (0.1초 딜레이)
|
206 |
-
await asyncio.sleep(0.1)
|
207 |
-
|
208 |
-
@app.get("/generate")
|
209 |
-
async def generate(request: Request):
|
210 |
-
# 쿼리 파라미터로 prompt 받음, 없으면 기본값
|
211 |
-
prompt = request.query_params.get("prompt", "안녕하세요")
|
212 |
-
|
213 |
-
# 스트리밍 응답으로 보냄
|
214 |
-
return StreamingResponse(async_generator_wrapper(prompt), media_type="text/plain") 여기에 합쳐
|
215 |
-
|
216 |
async def async_generator_wrapper(prompt: str):
|
217 |
-
intent = simple_intent_classifier(prompt)
|
218 |
-
|
219 |
-
if intent == "정보질문":
|
220 |
-
wiki_summary = get_wikipedia_summary(prompt)
|
221 |
-
summarized = summarize_text(wiki_summary, top_n=3)
|
222 |
-
yield f"『 \"{prompt}\" 에 대한 위키백과 요약입니다. 』\n\n{summarized}\n\n"
|
223 |
-
|
224 |
-
# 이후 일반 생성으로 이어감 (스트리밍)
|
225 |
gen = generate_text_mirostat_top_p(model, prompt)
|
226 |
for text_piece in gen:
|
227 |
yield text_piece
|
|
|
195 |
yield decoded_text
|
196 |
break
|
197 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
async def async_generator_wrapper(prompt: str):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
gen = generate_text_mirostat_top_p(model, prompt)
|
200 |
for text_piece in gen:
|
201 |
yield text_piece
|