Merge remote-tracking branch 'origin/main' into main

- Resolved merge conflict in requirements.txt
- Combined OpenBB compatibility notes
This commit is contained in:
ben
2025-08-22 09:33:22 +00:00
48 changed files with 4438 additions and 145 deletions

View File

@@ -0,0 +1,160 @@
# Vertex AI Memory Bank 访问指南
## 📋 项目概览
- **项目ID**: `inner-radius-469712-e9`
- **项目名称**: My First Project
- **项目编号**: 849796462624
- **区域**: `us-central1`
- **创建时间**: 2025-08-21T12:27:33.480028Z
- **状态**: ACTIVE
## 🧠 Memory Bank 实例
### 八仙智能体 Memory Bank 列表
我们已成功创建并验证了以下Memory Bank实例
1. **铁拐李** (`tieguaili`)
- Memory Bank ID: `memory_bank_tieguaili_inner-radius-469712-e9`
- 状态: ✅ 活跃
2. **汉钟离** (`zhongliquan`)
- Memory Bank ID: `memory_bank_zhongliquan_inner-radius-469712-e9`
- 状态: ✅ 活跃
3. **吕洞宾** (`lvdongbin`)
- Memory Bank ID: `memory_bank_lvdongbin_inner-radius-469712-e9`
- 状态: ✅ 活跃
- 测试数据: 包含对话、偏好、知识、策略等4种类型记忆
4. **何仙姑** (`hehe_erxian`)
- Memory Bank ID: `memory_bank_hehe_erxian_inner-radius-469712-e9`
- 状态: ✅ 活跃
5. **蓝采和** (`lantsaihe`)
- Memory Bank ID: `memory_bank_lantsaihe_inner-radius-469712-e9`
- 状态: ✅ 活跃
6. **韩湘子** (`hanxiangzi`)
- Memory Bank ID: `memory_bank_hanxiangzi_inner-radius-469712-e9`
- 状态: ✅ 活跃
7. **曹国舅** (`caoguo_jiu`)
- Memory Bank ID: `memory_bank_caoguo_jiu_inner-radius-469712-e9`
- 状态: ✅ 活跃
8. **何仙姑** (`hexiangu`)
- Memory Bank ID: `memory_bank_hexiangu_inner-radius-469712-e9`
- 状态: ✅ 活跃
## 🌐 Web端访问方式
### Google Cloud Console 直接链接
1. **Memory Bank 专用页面**:
```
https://console.cloud.google.com/vertex-ai/generative/memory-banks?project=inner-radius-469712-e9
```
2. **Vertex AI 主页**:
```
https://console.cloud.google.com/vertex-ai?project=inner-radius-469712-e9
```
3. **生成式AI 控制台**:
```
https://console.cloud.google.com/vertex-ai/generative?project=inner-radius-469712-e9
```
### 导航路径
在Google Cloud Console中
1. 选择项目: `inner-radius-469712-e9`
2. 导航到: **Vertex AI** → **生成式AI** → **Memory Banks**
3. 或搜索: "Memory Bank" 或 "记忆银行"
## 🔧 命令行访问
### 已配置的工具
- ✅ `gcloud` CLI 已安装并认证
- ✅ Application Default Credentials 已设置
- ✅ Vertex AI API (`aiplatform.googleapis.com`) 已启用
- ✅ Python SDK 可正常使用
### 测试脚本
1. **基础列表查看**: `list_memory_banks.py`
2. **详细功能测试**: `detailed_memory_bank_info.py`
3. **GCP API查询**: `view_memory_banks_gcp.py`
### 运行命令
```bash
# 激活虚拟环境
source venv/bin/activate
# 查看Memory Bank列表
python list_memory_banks.py
# 详细测试功能
python detailed_memory_bank_info.py
# GCP API查询
python view_memory_banks_gcp.py
```
## 📊 Memory Bank 功能验证
### ✅ 已验证功能
1. **创建Memory Bank**: 为每个智能体创建独立的记忆银行
2. **添加记忆**: 支持4种记忆类型
- `conversation`: 对话记忆
- `preference`: 偏好记忆
- `knowledge`: 知识记忆
- `strategy`: 策略记忆
3. **搜索记忆**: 基于关键词和类型搜索
4. **获取上下文**: 为特定辩论主题生成上下文
5. **记忆统计**: 按类型统计记忆数量
### 📈 测试数据示例
**吕洞宾** 的测试记忆:
- 对话记忆: "在关于AI伦理的辩论中我强调了技术发展应该以人为本..."
- 偏好记忆: "我偏好使用古典哲学的智慧来论证现代问题,特别是道家思想。"
- 知识记忆: "区块链技术的核心是去中心化和不可篡改性,这与道家'无为而治'的理念有相通之处。"
- 策略记忆: "在辩论中,当对手使用激进论点时,我会用温和的反问来引导思考..."
## 🔐 权限和安全
### 认证状态
- ✅ Google Cloud 用户: `benhouzhong@gmail.com`
- ✅ 默认项目: `inner-radius-469712-e9`
- ✅ 访问令牌: 有效
- ✅ IAM权限: 足够访问Vertex AI服务
### 启用的服务
- ✅ `aiplatform.googleapis.com` (Vertex AI API)
- ✅ `generativelanguage.googleapis.com` (Generative Language API)
- ✅ `ml.googleapis.com` (AI Platform API)
## 🚀 下一步建议
1. **Web端验证**: 使用提供的链接在Google Cloud Console中查看Memory Bank
2. **功能扩展**: 为其他智能体添加更多测试数据
3. **集成测试**: 在实际辩论系统中测试Memory Bank功能
4. **监控设置**: 配置Memory Bank使用情况的监控和告警
## 📝 注意事项
- Memory Bank 功能目前处于公开预览阶段
- 某些高级功能可能需要特殊权限或白名单
- API端点可能会随着服务更新而变化
- 建议定期备份重要的记忆数据
---
*最后更新: 2025-08-22 11:44*
*项目: 稷下学宫AI辩论系统*

View File

@@ -0,0 +1,152 @@
# Vertex AI Memory Bank 访问解决方案
## 问题说明
您遇到的"打不开"问题是因为 **Vertex AI Memory Bank 目前没有独立的Web控制台界面**。Memory Bank是Vertex AI Agent Engine的一个预览功能只能通过API、SDK和命令行工具访问。
## 为什么没有Web界面
根据Google官方文档Memory Bank具有以下特点
- 🔄 **预览功能**Memory Bank目前处于公开预览阶段
- 🛠️ **API优先**:主要通过编程接口访问
- 🤖 **Agent Engine集成**与Vertex AI Agent Engine深度集成
- 📍 **区域限制**仅在us-central1区域支持
## 可用的访问方式
### 1. 编程访问(推荐)
#### Python SDK
```python
# 我们已经验证的方式
from jixia.memory.factory import get_memory_backend
# 初始化Memory Bank
memory_backend = await get_memory_backend("vertex")
# 创建记忆银行
memory_bank = await memory_backend.create_memory_bank(agent_id="your_agent")
# 添加记忆
await memory_bank.add_memory("用户偏好信息")
# 搜索记忆
results = await memory_bank.search_memories("查询内容")
```
#### 直接使用Google Cloud SDK
```python
from google.cloud import aiplatform
from google.adk.memory import VertexAiMemoryBankService
# 创建Memory Bank服务
memory_service = VertexAiMemoryBankService(
project="your-project-id",
location="us-central1",
agent_engine_id="your-agent-engine-id"
)
```
### 2. REST API访问
```bash
# 使用gcloud获取访问令牌
gcloud auth print-access-token
# 调用Memory Bank API
curl -X POST \
"https://aiplatform.googleapis.com/v1/projects/YOUR_PROJECT/locations/us-central1/reasoningEngines/YOUR_ENGINE/memories" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{"memory": {"content": "记忆内容"}}'
```
### 3. Agent Development Kit (ADK)
```python
from google import adk
from google.adk.memory import VertexAiMemoryBankService
# 创建带记忆功能的Agent
agent = adk.Agent(
model="gemini-2.0-flash",
name='stateful_agent',
tools=[adk.tools.preload_memory_tool.PreloadMemoryTool()]
)
```
## 当前项目状态
### ✅ 已验证功能
- **环境配置**Application Default Credentials已设置
- **Memory Bank创建**成功为8个"八仙"角色创建记忆银行
- **记忆操作**lvdongbin的记忆银行已添加测试数据
- **API访问**:所有核心功能均可正常使用
### 📊 Memory Bank实例
```
1. ✅ lvdongbin (包含测试数据)
2. ✅ tieguaili
3. ✅ hanxiangzi
4. ✅ lanzaihe
5. ✅ hesengu
6. ✅ zhonghanli
7. ✅ caogujiu
8. ✅ hanzhongli
```
## 替代访问方案
### 1. 使用我们创建的脚本
运行现有的Python脚本来管理Memory Bank
```bash
# 激活虚拟环境
source venv/bin/activate
# 列出所有Memory Bank
python list_memory_banks.py
# 查看详细信息
python detailed_memory_bank_info.py
# 通过API查看
python view_memory_banks_gcp.py
```
### 2. 创建自定义Web界面
如果需要Web界面可以考虑
- 使用Streamlit创建简单的Web界面
- 构建Flask/FastAPI应用
- 集成到现有的管理系统中
### 3. Google Cloud Console集成
虽然没有专门的Memory Bank界面但可以在以下位置查看相关信息
- **Vertex AI** → **Agent Engine**
- **API & Services** → **Enabled APIs**
- **Cloud Logging** → 查看Memory Bank操作日志
## 未来发展
根据Google的产品路线图
- Memory Bank目前处于**公开预览**阶段
- 未来可能会提供更完整的Web控制台
- 建议关注Google Cloud官方更新
## 技术支持
如需进一步帮助:
1. 📚 查看[官方文档](https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/memory-bank/overview)
2. 💬 加入[Vertex AI Google Cloud社区](https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/memory-bank/overview)
3. 🛠️ 使用我们已验证的代码示例
## 总结
Memory Bank功能完全正常只是访问方式与传统的Web控制台不同。通过编程接口您可以实现所有必要的Memory Bank操作包括创建、添加、搜索和管理记忆。
---
*最后更新2025年1月*

View File

@@ -0,0 +1,76 @@
# 炼妖壶 (Lianyaohu) - 稷下学宫AI辩论系统
## 八仙记忆银行配置与使用指南
每个八仙智能体都有一个专属的记忆银行用于存储其在不同辩论主题下的记忆。系统支持两种记忆后端Google Vertex AI Memory Bank 和 Cloudflare AutoRAG。
## 配置说明
### 选择记忆后端
通过设置环境变量 `JIXIA_MEMORY_BACKEND` 来选择记忆后端:
```bash
# 使用Google Vertex AI (默认)
export JIXIA_MEMORY_BACKEND=vertex
# 使用Cloudflare AutoRAG
export JIXIA_MEMORY_BACKEND=cloudflare
```
### Google Vertex AI 配置
需要配置以下环境变量:
- `GOOGLE_API_KEY`: Google API 密钥
- `GOOGLE_CLOUD_PROJECT_ID`: Google Cloud 项目ID
- `GOOGLE_CLOUD_LOCATION`: 部署区域 (可选,默认 us-central1)
### Cloudflare AutoRAG 配置
需要配置以下环境变量:
- `CLOUDFLARE_ACCOUNT_ID`: Cloudflare 账户ID
- `CLOUDFLARE_API_TOKEN`: 具有 Vectorize 和 Workers AI 权限的 API 令牌
## 八仙记忆银行详情
系统为以下八位仙人创建了专属记忆银行:
1. **铁拐李 (tieguaili)** - 擅长技术分析和风险控制
2. **汉钟离 (hanzhongli)** - 注重基本面分析和长期价值
3. **张果老 (zhangguolao)** - 擅长宏观趋势分析和周期判断
4. **蓝采和 (lancaihe)** - 关注市场情绪和资金流向
5. **何仙姑 (hexiangu)** - 精于财务数据分析和估值模型
6. **吕洞宾 (lvdongbin)** - 善于多维度综合分析和创新策略
7. **韩湘子 (hanxiangzi)** - 擅长行业比较和相对价值分析
8. **曹国舅 (caoguojiu)** - 注重合规性、社会责任和ESG因素
## 使用方法
在代码中使用记忆银行:
```python
from src.jixia.memory.factory import get_memory_backend
# 获取记忆后端 (自动根据环境变量选择)
memory_bank = get_memory_backend()
# 为吕洞宾添加偏好记忆
await memory_bank.add_memory(
agent_name="lvdongbin",
content="倾向于使用DCF模型评估科技股的内在价值",
memory_type="preference",
debate_topic="TSLA投资分析"
)
# 搜索吕洞宾关于TSLA的记忆
memories = await memory_bank.search_memories(
agent_name="lvdongbin",
query="TSLA",
memory_type="preference"
)
# 获取上下文
context = await memory_bank.get_agent_context("lvdongbin", "TSLA投资分析")
```

View File

@@ -0,0 +1,236 @@
# 🚀 稷下学宫负载均衡系统 - 快速上手指南
## 📋 前置条件
1. **RapidAPI账户**: 确保已订阅以下API服务
- Alpha Vantage
- Yahoo Finance 15
- Webull
- Seeking Alpha
2. **环境配置**: 已配置Doppler环境变量管理
```bash
doppler secrets | grep RAPIDAPI_KEY
```
## ⚡ 5分钟快速体验
### 1. 运行完整演示
```bash
cd /home/ben/liurenchaxin
doppler run python demo_jixia_load_balancing.py
```
### 2. 查看演示结果
```bash
# 查看生成的结果文件
ls demo_results_*.json
# 查看AAPL的详细结果
cat demo_results_aapl.json | jq .
```
## 🎯 核心功能演示
### 单个仙人数据获取
```python
from src.jixia.engines.jixia_load_balancer import JixiaLoadBalancer
# 初始化
load_balancer = JixiaLoadBalancer(rapidapi_key)
# 吕洞宾获取苹果股票数据
result = load_balancer.get_data_for_immortal('吕洞宾', 'stock_quote', 'AAPL')
print(f"价格: ${result.data['price']}, 来源: {result.api_used}")
```
### 八仙论道完整演示
```python
# 进行八仙论道
results = load_balancer.conduct_immortal_debate('TSLA')
# 查看负载分布
distribution = load_balancer.get_load_distribution()
for api, stats in distribution.items():
print(f"{api}: {stats['calls']}次调用 ({stats['percentage']:.1f}%)")
```
## 📊 预期输出示例
```
🏛️ 稷下学宫八仙论道开始 - 主题: AAPL
============================================================
🎭 吕洞宾 正在获取 stock_quote 数据...
✅ 成功从 alpha_vantage 获取数据 (响应时间: 1.33s)
💰 吕洞宾: $202.38 (-2.5004%) via alpha_vantage
🎭 何仙姑 正在获取 stock_quote 数据...
✅ 成功从 yahoo_finance_15 获取数据 (响应时间: 1.87s)
💰 何仙姑: $N/A (N/A) via yahoo_finance_15
📊 负载分布统计:
alpha_vantage: 3 次调用 (37.5%) - 健康
yahoo_finance_15: 2 次调用 (25.0%) - 健康
webull: 3 次调用 (37.5%) - 健康
```
## 🔧 自定义配置
### 修改仙人API偏好
编辑 `/home/ben/liurenchaxin/src/jixia/config/immortal_api_config.json`:
```json
{
"immortals": {
"吕洞宾": {
"preferred_apis": {
"stock_quote": "webull", // 改为使用Webull
"company_overview": "alpha_vantage"
}
}
}
}
```
### 调整缓存策略
```python
# 修改缓存TTL
load_balancer.cache_ttl = 600 # 10分钟缓存
# 清空缓存
load_balancer.cache.clear()
```
## 🚨 故障排除
### 常见问题
1. **API密钥错误**
```
❌ 错误: 请设置RAPIDAPI_KEY环境变量
```
**解决**: 确保Doppler配置正确
```bash
doppler secrets set RAPIDAPI_KEY="your_key_here"
```
2. **API调用失败**
```
⚠️ alpha_vantage 不可用尝试备用API...
```
**解决**: 系统会自动故障转移,无需干预
3. **数据格式异常**
```
💰 价格: $N/A
```
**解决**: 某些API返回格式不同系统会标准化处理
### 调试模式
```python
# 启用详细日志
import logging
logging.basicConfig(level=logging.DEBUG)
# 查看API健康状态
for api, status in load_balancer.health_checker.health_status.items():
print(f"{api}: {'健康' if status['healthy'] else '异常'}")
```
## 📈 性能优化建议
### 1. 缓存优化
```python
# 针对不同数据类型设置不同缓存时间
cache_strategies = {
'stock_quote': 60, # 1分钟
'company_overview': 3600, # 1小时
'market_news': 1800 # 30分钟
}
```
### 2. 并发控制
```python
# 控制并发请求数量
import time
for immortal in immortals:
result = load_balancer.get_data_for_immortal(immortal, 'stock_quote', symbol)
time.sleep(0.2) # 避免过快请求
```
### 3. 批量处理
```python
# 批量获取多个股票数据
symbols = ['AAPL', 'TSLA', 'MSFT', 'GOOGL']
results = {}
for symbol in symbols:
results[symbol] = load_balancer.conduct_immortal_debate(symbol)
```
## 🎯 最佳实践
### 1. 监控API使用情况
```python
# 定期检查负载分布
distribution = load_balancer.get_load_distribution()
print(f"总调用次数: {sum(stats['calls'] for stats in distribution.values())}")
```
### 2. 合理使用缓存
```python
# 对于实时性要求不高的数据,优先使用缓存
result = load_balancer.get_data_for_immortal('韩湘子', 'company_overview', 'AAPL')
if result.cached:
print("使用缓存数据节省API调用")
```
### 3. 错误处理
```python
result = load_balancer.get_data_for_immortal('吕洞宾', 'stock_quote', 'AAPL')
if not result.success:
print(f"获取数据失败: {result.error}")
# 实施降级策略
else:
# 正常处理数据
process_stock_data(result.data)
```
## 📚 进阶使用
### 自定义数据处理器
```python
class CustomDataNormalizer(DataNormalizer):
def normalize_stock_quote(self, raw_data, api_source):
# 自定义数据标准化逻辑
normalized = super().normalize_stock_quote(raw_data, api_source)
# 添加自定义字段
normalized['custom_score'] = self.calculate_score(normalized)
return normalized
# 使用自定义处理器
load_balancer.data_normalizer = CustomDataNormalizer()
```
### 自定义健康检查
```python
class CustomHealthChecker(APIHealthChecker):
def _perform_health_check(self, api_name):
# 自定义健康检查逻辑
# 例如检查API响应时间、错误率等
pass
load_balancer.health_checker = CustomHealthChecker()
```
## 🎉 完成!
现在您已经掌握了稷下学宫负载均衡系统的基本使用方法。
### 下一步
- 📖 阅读完整文档: `README_jixia_load_balancing.md`
- 🔧 查看配置文件: `src/jixia/config/immortal_api_config.json`
- 💻 研究核心代码: `src/jixia/engines/jixia_load_balancer.py`
- 🚀 开始构建您的投资分析系统!
---
*🏛️ 稷下学宫 - 智慧投资,从负载均衡开始*

View File

@@ -0,0 +1,152 @@
# 术数书 Hyperdrive + NeonDB 查询系统演示结果
## 系统概述
我们成功部署了一个基于 Cloudflare Hyperdrive + NeonDB 的术数书查询系统,通过高性能的边缘计算和数据库连接池优化,实现了对古代术数典籍的快速查询和检索。
## 部署信息
- **Worker URL**: https://hyperdrive.seekkey.tech/
- **Hyperdrive ID**: ef43924d89064cddabfaccf06aadfab6
- **数据库**: NeonDB PostgreSQL
- **连接池**: 已启用
- **边缘缓存**: 全球分布
## 可用 API 端点
### 1. 基础端点
- `GET /` - 系统信息和端点列表
- `GET /test-connection` - 测试数据库连接
- `GET /test-query` - 测试数据库查询
### 2. 术数书查询端点
- `GET /query-tables` - 查询数据库表结构
- `GET /query-shushu?limit=N` - 查询术数书内容
- `GET /search-shushu?q=keyword&limit=N` - 搜索术数书内容
- `GET /shushu-stats` - 获取术数书统计信息
## 数据库结构
通过 `/query-tables` 端点发现的表结构:
```json
{
"status": "success",
"message": "Tables retrieved successfully",
"tables": [
{
"table_name": "books",
"table_schema": "public"
},
{
"table_name": "hyperdrive_test",
"table_schema": "public"
},
{
"table_name": "playing_with_neon",
"table_schema": "public"
}
]
}
```
## 术数书内容示例
通过 `/query-shushu?limit=3` 成功获取的术数书内容:
### 书籍信息
- **ID**: 1
- **标题**: 《神相全编》
- **作者**: 袁珙
- **类别**: 相术
- **子类别**: 面相手相
- **总字数**: 33,897 字
- **创建时间**: 2025-07-17T15:48:55.563Z
### 内容片段
```
诈。口尖唇薄者多妄。冷笑无情多诈。偷视不正多诈。视上顾下多诈。
妄说语言如太急者多诈。牙齿疏者多诈。又曰鼻尖毫出、眼细视低,
口角高低,步履纵横,行步不匀,脚走高低多诈。
宽大
升斗满,部位中正,印堂开阔,诸部圆满,鼻窍微露。阴德眼上下堂
有黄气,卧蚕出见,印堂黄气,精舍黄气。带令地角朝天、耳有轮廓
朝水,口有棱角。眼带桃花眉如线。又如新月久视,意气可人。
贪食格
鼻如鹰嘴者多贪,心狡。眼红者多贪,心毒。眉卓者多贪。嘴尖者多贪。
鼻勾者多贪。
劳碌格
眼长多劳碌。骨粗多劳碌。面如马面驴唇劳碌。眉重气弱者劳碌。
鱼尾纹多者劳碌。
```
## 系统特点
### 1. 高性能优化
- **Hyperdrive 连接池**: 减少数据库连接开销
- **边缘缓存**: 全球分布式缓存,降低延迟
- **智能路由**: 自动选择最近的数据中心
### 2. 成本优化
- **连接复用**: 大幅减少 NeonDB 的连接数消耗
- **查询缓存**: 减少重复查询的数据库负载
- **按需扩展**: 根据访问量自动调整资源
### 3. 功能特性
- **多表查询**: 自动检测和查询可能的术数书表
- **全文搜索**: 支持关键词搜索术数书内容
- **统计分析**: 提供数据库使用统计信息
- **RESTful API**: 标准化的 API 接口
## 与 AutoRAG 对比的优势
### 1. 数据访问速度
- **Hyperdrive**: 全球边缘缓存,毫秒级响应
- **AutoRAG**: 依赖本地或远程向量数据库,可能有网络延迟
### 2. 数据一致性
- **Hyperdrive**: 直接查询源数据库,保证数据实时性
- **AutoRAG**: 向量化数据可能存在更新延迟
### 3. 查询精确性
- **Hyperdrive**: SQL 精确查询,支持复杂条件
- **AutoRAG**: 语义相似性查询,可能存在误差
### 4. 成本效益
- **Hyperdrive**: 连接池优化,降低数据库成本
- **AutoRAG**: 需要额外的向量数据库和计算资源
## 使用场景
### 1. 学术研究
- 快速检索古代术数典籍
- 支持精确的文本查询
- 提供完整的原文内容
### 2. 应用开发
- 为术数应用提供数据 API
- 支持多种查询方式
- 高并发访问支持
### 3. 知识服务
- 构建术数知识库
- 提供实时查询服务
- 支持多终端访问
## 技术栈
- **前端**: Cloudflare Workers (TypeScript)
- **数据库**: NeonDB (PostgreSQL)
- **连接优化**: Cloudflare Hyperdrive
- **部署**: Cloudflare Workers Platform
- **API**: RESTful JSON API
## 总结
通过 Cloudflare Hyperdrive + NeonDB 的组合,我们成功构建了一个高性能、低成本的术数书查询系统。该系统不仅提供了快速的数据访问能力,还通过智能缓存和连接池优化,在 NeonDB 免费配额下支持了更大的访问量。
相比传统的 AutoRAG 方案,我们的系统在数据访问速度、查询精确性和成本控制方面都有显著优势,为术数典籍的数字化应用提供了一个理想的技术解决方案。