# 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 ============================================================ [主要端點測試] 測試 Llama 通用端點... [OK] 測試 GPT-OSS 專用端點... [OK] 測試 DeepSeek 專用端點... [OK] 找到 3 個可用端點,請選擇 (預設: 1): ``` 選擇端點後即可開始對話: ``` 你: 你好 AI: 你好!有什麼我可以幫助你的嗎? 你: 1+1等於多少? AI: 1+1等於2。 ``` ### 對話指令 在對話中可以使用以下指令: | 指令 | 功能 | |-----|------| | `exit` 或 `quit` | 結束對話 | | `clear` | 清空對話歷史,開始新對話 | | `model` | 切換使用的 AI 模型 | ## 🔧 程式檔案說明 | 檔案名稱 | 用途說明 | |---------|---------| | `llama_external_api.py` | **主程式** - 外網連接專用版本 | | `llama_full_api.py` | 完整功能版本,支援所有端點 | | `quick_test.py` | 快速測試連接是否正常 | | `test_all_models.py` | 測試所有模型的工具 | ## 🌐 可用的 API 端點 ### 主要端點 | 端點 | 地址 | 支援模型 | |-----|------|---------| | 通用端點 | `https://llama.theaken.com/v1` | 所有模型 | | GPT-OSS 專用 | `https://llama.theaken.com/v1/gpt-oss-120b` | GPT-OSS-120B | | DeepSeek 專用 | `https://llama.theaken.com/v1/deepseek-r1-671b` | DeepSeek-R1-671B | ### 備用端點 | 端點 | 地址 | 支援模型 | |-----|------|---------| | 備用 API 1 | `https://api.llama.theaken.com/v1` | 所有模型 | | 備用 API 2 | `https://llama-api.theaken.com/v1` | 所有模型 | ## 🤖 支援的 AI 模型 1. **GPT-OSS-120B** - 開源 GPT 模型,1200 億參數 2. **DeepSeek-R1-671B** - DeepSeek 推理模型,6710 億參數 3. **Qwen3-Embedding-8B** - 通義千問嵌入模型,80 億參數 ## ❓ 常見問題 ### 問題:程式顯示「無法連接」 **解決方法:** 1. 檢查網路連接是否正常 2. 確認可以訪問外部網站 (https://llama.theaken.com) 3. 嘗試執行 `python quick_test.py` 測試連接 4. 如果主要端點無法使用,程式會自動嘗試備用端點 ### 問題:AI 回應包含奇怪的標記 **說明:** 有時 AI 回應會包含 `` 或 `<|channel|>` 等標記,這是 AI 的思考過程,程式會自動清理這些內容。 ### 問題:對話不連貫 **解決方法:** 使用 `clear` 指令清空對話歷史,開始新的對話。 ## 📝 簡單範例程式碼 如果你想在自己的程式中使用,可以參考以下程式碼: ```python from openai import OpenAI # 設定連接 client = OpenAI( api_key="paVrIT+XU1NhwCAOb0X4aYi75QKogK5YNMGvQF1dCyo=", base_url="https://llama.theaken.com/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": "https://新的地址/v1", "models": ["gpt-oss-120b"] } ] ``` ## 📄 授權條款 本專案採用 MIT 授權條款,可自由使用、修改和分發。 ## 🤝 問題回報 如果遇到問題或有建議,歡迎在 Gitea 上開 Issue: https://gitea.theaken.com/aken1023/pj_llama/issues ## 📊 測試狀態 最後測試時間:2025-09-19 - 📡 主要端點:正在測試中 - 🔄 備用端點:當主要端點無法使用時自動切換 --- **版本**: 1.0.0 **作者**: Aken **專案網址**: https://gitea.theaken.com/aken1023/pj_llama