Files
pj_llama/README.md
aken1023 ece261ed8a 新增內網外網選擇功能
新增功能:
 llama_universal.py - 主程式支援內外網環境選擇
🌐 內網端點:http://192.168.0.6:21180-21182/v1
🌐 外網端點:https://llama.theaken.com/v1/*
🔄 對話中可使用 'switch' 指令切換環境
📱 智慧環境偵測和錯誤處理

更新內容:
- 新增網路環境選擇介面
- 支援內網三個端點 (21180, 21181, 21182)
- 支援外網三個端點(通用、GPT專用、DeepSeek專用)
- 新增 switch 指令可在對話中切換環境
- 完整的錯誤處理和重試機制
- 更新 README.md 說明新功能和使用方式

現在用戶可以根據所在網路環境自由選擇最適合的連接方式!
2025-09-19 23:27:19 +08:00

219 lines
5.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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