timmy ревизий этого фрагмента 6 months ago. К ревизии
1 file changed, 25 insertions
stream_chat_completion.py(файл создан)
| @@ -0,0 +1,25 @@ | |||
| 1 | + | import os | |
| 2 | + | from openai import OpenAI | |
| 3 | + | ||
| 4 | + | # 初始化 OpenAI 客戶端,設定 API 金鑰跟自定義 base URL | |
| 5 | + | client = OpenAI( | |
| 6 | + | api_key="sk-olPkgbB0-qQbgW5kO-ovidK4cR-WTmLAUco", # 直接寫入你的金鑰 | |
| 7 | + | base_url="http://192.168.88.82:4000" # 指定自定義 API 端點 | |
| 8 | + | ) | |
| 9 | + | ||
| 10 | + | # 發送聊天完成請求,啟用串流模式 | |
| 11 | + | stream = client.chat.completions.create( | |
| 12 | + | model="ollama_chat/qwen3:8b-q8_0", # 指定模型 | |
| 13 | + | messages=[ | |
| 14 | + | {"role": "user", "content": "用一句話解釋量子糾纏"} # 訊息內容 | |
| 15 | + | ], | |
| 16 | + | stream=True # 啟用串流模式 | |
| 17 | + | ) | |
| 18 | + | ||
| 19 | + | # 逐步處理回應並即時顯示每個 chunk | |
| 20 | + | for chunk in stream: | |
| 21 | + | content = chunk.choices[0].delta.content or "" | |
| 22 | + | if content: | |
| 23 | + | print(content, end="", flush=True) # 即時印出每個片段,不換行,強制刷新緩衝 | |
| 24 | + | ||
| 25 | + | print() # 最後換行 | |
Новее
Позже