# Llama AI 對話程式 一個簡單易用的 Python 程式,用於連接和使用 Llama AI 模型進行對話。 ## 🌟 主要功能 - ✅ **支援內網和外網連接** - 自動偵測可用的 API 端點 - 💬 **互動式對話介面** - 像聊天一樣與 AI 對話 - 🤖 **多模型支援** - GPT-OSS、DeepSeek、Qwen 等多種模型 - 🔄 **自動重試機制** - 連接失敗時自動切換端點 - 🧹 **智慧清理回應** - 自動移除 AI 思考過程的標記 - 📝 **對話歷史管理** - 保持上下文連貫的對話 ## 🚀 快速開始 ### 1. 安裝需求 確保你的電腦已安裝 Python 3.7 或更新版本。 ```bash # 安裝必要套件 pip install openai ``` ### 2. 下載程式 ```bash # 複製專案 git clone https://gitea.theaken.com/aken1023/pj_llama.git cd pj_llama # 或直接下載 ZIP 檔案解壓縮 ``` ### 3. 執行對話程式 ```bash # 執行主程式(自動選擇最佳連接) python llama_full_api.py # 或執行內網專用版本 python llama_chat.py ``` ## 📖 使用說明 ### 基本對話 執行程式後,會出現以下畫面: ``` ============================================================ Llama API 完整對話程式 時間: 2025-09-19 16:00:00 ============================================================ [內網端點測試] 測試 內網端點 1 (21180)... [OK] 測試 內網端點 2 (21181)... [OK] 測試 內網端點 3 (21182)... [OK] 找到 3 個可用端點,請選擇 (預設: 1): ``` 選擇端點後即可開始對話: ``` 你: 你好 AI: 你好!有什麼我可以幫助你的嗎? 你: 1+1等於多少? AI: 1+1等於2。 ``` ### 對話指令 在對話中可以使用以下指令: | 指令 | 功能 | |-----|------| | `exit` 或 `quit` | 結束對話 | | `clear` | 清空對話歷史,開始新對話 | | `model` | 切換使用的 AI 模型 | ## 🔧 程式檔案說明 | 檔案名稱 | 用途說明 | |---------|---------| | `llama_full_api.py` | **主程式** - 完整功能版本,支援所有端點 | | `llama_chat.py` | 內網專用對話程式 | | `quick_test.py` | 快速測試連接是否正常 | | `local_api_test.py` | 測試所有端點的工具 | ## 🌐 可用的 API 端點 ### 內網端點(公司/學校內部網路) | 端點 | 地址 | 狀態 | |-----|------|------| | 端點 1 | `http://192.168.0.6:21180/v1` | ✅ 正常 | | 端點 2 | `http://192.168.0.6:21181/v1` | ✅ 正常 | | 端點 3 | `http://192.168.0.6:21182/v1` | ✅ 正常 | ### 外網端點(需要網路連接) | 端點 | 地址 | 狀態 | |-----|------|------| | 通用端點 | `https://llama.theaken.com/v1` | 📡 需測試 | ## 🤖 支援的 AI 模型 1. **GPT-OSS-120B** - 開源 GPT 模型,1200 億參數 2. **DeepSeek-R1-671B** - DeepSeek 推理模型,6710 億參數 3. **Qwen3-Embedding-8B** - 通義千問嵌入模型,80 億參數 ## ❓ 常見問題 ### 問題:程式顯示「無法連接」 **解決方法:** 1. 檢查網路連接是否正常 2. 如果在公司/學校,確認是否在內網環境 3. 嘗試執行 `python quick_test.py` 測試連接 ### 問題:AI 回應包含奇怪的標記 **說明:** 有時 AI 回應會包含 `` 或 `<|channel|>` 等標記,這是 AI 的思考過程,程式會自動清理這些內容。 ### 問題:對話不連貫 **解決方法:** 使用 `clear` 指令清空對話歷史,開始新的對話。 ## 📝 簡單範例程式碼 如果你想在自己的程式中使用,可以參考以下程式碼: ```python from openai import OpenAI # 設定連接 client = OpenAI( api_key="paVrIT+XU1NhwCAOb0X4aYi75QKogK5YNMGvQF1dCyo=", base_url="http://192.168.0.6:21180/v1" ) # 發送訊息 response = client.chat.completions.create( model="gpt-oss-120b", messages=[ {"role": "user", "content": "你好"} ] ) # 顯示回應 print(response.choices[0].message.content) ``` ## 🛠️ 進階設定 ### 修改 API 金鑰 如果需要使用不同的 API 金鑰,編輯程式中的: ```python API_KEY = "你的新金鑰" ``` ### 新增端點 在 `llama_full_api.py` 中的 `ENDPOINTS` 加入新端點: ```python "內網": [ { "name": "新端點", "url": "http://新的地址/v1", "models": ["gpt-oss-120b"] } ] ``` ## 📄 授權條款 本專案採用 MIT 授權條款,可自由使用、修改和分發。 ## 🤝 問題回報 如果遇到問題或有建議,歡迎在 Gitea 上開 Issue: https://gitea.theaken.com/aken1023/pj_llama/issues ## 📊 測試狀態 最後測試時間:2025-09-19 - ✅ 內網端點 1-3:全部正常 - ❌ 外網端點:暫時無法使用(502 錯誤) --- **版本**: 1.0.0 **作者**: Aken **專案網址**: https://gitea.theaken.com/aken1023/pj_llama