Project-Aura / examples /r1_integration.py
ljsysfurry's picture
Upload examples/r1_integration.py with huggingface_hub
38867b4 verified
Raw
History Blame Contribute Delete
5.84 kB
#!/usr/bin/env python3
"""
Project Aura ร— DeepSeek R1 โ€” ๅฎŒๆ•ด้›†ๆˆ็คบไพ‹
ๆœฌ็คบไพ‹ๅฑ•็คบๅฆ‚ไฝ•ๅฐ† Aura ่ฐƒๅบฆ็ณป็ปŸ็›ดๆŽฅๅฅ—่ฟ› DeepSeek R1 ๆจกๅž‹๏ผŒ
ๅฎž็Žฐๆœ‰ๅ‘ผๅธๆ„Ÿ็š„AIไธปๅŠจๆ€งใ€‚
็”จๆณ•:
# ๅŸบๆœฌๆผ”็คบ๏ผˆไฝฟ็”จ่ง„ๅˆ™ๅผ•ๆ“ŽFallback๏ผŒๆ— ้œ€GPU๏ผ‰
python r1_integration.py
# ๅฎŒๆ•ดๆจกๅผ๏ผˆๅŠ ่ฝฝDeepSeek R1 + LoRA๏ผ‰
python r1_integration.py --model ljsysfurry/DeepSeek-R1-Distill-Qwen-7B --lora ljsysfurry/deepseek-r1-7b-xiaoshan-lora
ๆžถๆž„:
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Aura ่ฐƒๅบฆๅผ•ๆ“Ž โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ๅฟƒ่ทณ โ”‚โ†’โ”‚ๅŒ็ณป็ปŸ โ”‚โ†’โ”‚ไปทๅ€ผ โ”‚โ†’โ”‚ๅ้ชšๆ‰ฐ โ”‚ โ”‚
โ”‚ โ”‚่ฐƒๅบฆๅ™จโ”‚ โ”‚ๅ†ณ็ญ–ๅ™จโ”‚ โ”‚็ฝ‘็ปœ โ”‚ โ”‚ๆผๆ–— โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ†“ โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ DeepSeek R1 ็”Ÿๆˆๅฑ‚ โ”‚ โ”‚
โ”‚ โ”‚ (ๅ†…ๅฎน็”Ÿๆˆ / ๆ…ข็ณป็ปŸ่ฏ„ไผฐ) โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ†“ โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ ่กจ่พพๅฑ‚ + ็”จๆˆท็•Œ้ข โ”‚ โ”‚
โ”‚ โ”‚ (ๅ‘ผๅธๅ…‰ๆ•ˆ/ๆ ‡้ข˜/ๅฎŒๆ•ดๆถˆๆฏ) โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
"""
import time
import argparse
import sys
import os
# ๆทปๅŠ ็ˆถ็›ฎๅฝ•ๅˆฐ่ทฏๅพ„
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from aura.config import AuraConfig
from aura.engine import AuraEngine
from aura.interaction import ExpressionOutput, NotificationLevel
def simulate_conversation(engine: AuraEngine):
"""ๆจกๆ‹Ÿไธ€ไธชๅฎŒๆ•ด็š„็”จๆˆทไฝฟ็”จๅœบๆ™ฏ"""
print("\n" + "=" * 60)
print(" Project Aura ร— DeepSeek R1 โ€” ้›†ๆˆๆผ”็คบ")
print("=" * 60)
print()
print("ๅœบๆ™ฏ๏ผš็”จๆˆทๆ™šไธŠ10็‚น่ฟ˜ๅœจๅŠ ็ญ๏ผŒๅทฒ็ป1ๅฐๆ—ถๆฒก่ฏด่ฏไบ†")
print()
# ็”จๆˆทๆœ€ๅŽไธ€ๆกๆถˆๆฏ๏ผˆ1ๅฐๆ—ถๅ‰๏ผ‰
engine.user_interacted("ๆœ€่ฟ‘้กน็›ฎๅŽ‹ๅŠ›ๅฅฝๅคง๏ผŒๆ„Ÿ่ง‰ๅฟซๆ’‘ไธไฝไบ†", mood="anxious")
print("[็”จๆˆท] ๆœ€่ฟ‘้กน็›ฎๅŽ‹ๅŠ›ๅฅฝๅคง๏ผŒๆ„Ÿ่ง‰ๅฟซๆ’‘ไธไฝไบ†")
# ๆจกๆ‹Ÿ1ๅฐๆ—ถ็ฉบ้—ฒ
engine.perception.update(
last_interaction_time=time.time() - 3600,
is_active_session=False,
device_mode="normal",
)
print("[็ณป็ปŸ] 1ๅฐๆ—ถๅŽ...")
print()
# ไธปๅŠจ่งฆๅ‘ๅ†ณ็ญ–
print("[Aura] ๅ†ณ็ญ–ไธญ...")
engine.on_tick()
print()
# ็”จๆˆทๅ›žๅคๅŽ
print("[็”จๆˆท] ๅ—ฏ๏ผŒไฝ ่ฏดๅพ—ๅฏน๏ผŒๆˆ‘ๅ‡†ๅค‡ไผ‘ๆฏไบ†")
engine.user_interacted("ๅ—ฏ๏ผŒไฝ ่ฏดๅพ—ๅฏน๏ผŒๆˆ‘ๅ‡†ๅค‡ไผ‘ๆฏไบ†")
print()
# ๆทฑๅคœๅ…ณๆ€€
engine.perception.update(device_mode="sleep")
print("[็ณป็ปŸ] ๆทฑๅคœ๏ผŒ็”จๆˆทๅทฒ่ฟ›ๅ…ฅ็ก็œ ...")
engine.on_tick()
print()
# ็ฌฌไบŒๅคฉๆ—ฉไธŠ
print("[็ณป็ปŸ] ็ฌฌไบŒๅคฉๆ—ฉไธŠ...")
engine.perception.update(
device_mode="normal",
last_interaction_time=time.time() - 28800, # 8ๅฐๆ—ถ
)
engine.on_tick()
print()
# ็”จๆˆทๆ‹’็ป
print("[็”จๆˆท] ๅˆซ่€้—ฎๆˆ‘ๅฅฝไธๅฅฝ๏ผŒ่ฎฉๆˆ‘้™้™")
engine.antispam.record_rejection()
print()
# ๆฃ€ๆŸฅๅ†ทๅด
engine.on_tick()
print()
def main():
parser = argparse.ArgumentParser(description="Project Aura ร— DeepSeek R1 ้›†ๆˆๆผ”็คบ")
parser.add_argument("--model", default="",
help="DeepSeek R1 ๆจกๅž‹่ทฏๅพ„๏ผˆ็•™็ฉบไฝฟ็”จ่ง„ๅˆ™ๅผ•ๆ“ŽFallback๏ผ‰")
parser.add_argument("--lora", default="",
help="LoRA ้€‚้…ๅ™จ่ทฏๅพ„๏ผˆๅฏ้€‰๏ผ‰")
parser.add_argument("--dry-run", action="store_true",
help="ไป…ๆต‹่ฏ•่ฐƒๅบฆ็ณป็ปŸ๏ผŒไธๅŠ ่ฝฝๆจกๅž‹")
args = parser.parse_args()
# ้…็ฝฎ
config = AuraConfig()
if args.model:
config.r1_model_path = args.model
if args.lora:
config.r1_lora_path = args.lora
# ๅˆๅง‹ๅŒ–ๅผ•ๆ“Ž
engine = AuraEngine(config)
# ่ฎพ็ฝฎๆถˆๆฏๅ›ž่ฐƒ
def on_message(output: ExpressionOutput):
level_map = {
NotificationLevel.BREATHING: "๐ŸŒซ (ๅ‘ผๅธๅ…‰ๆ•ˆ)",
NotificationLevel.TITLE: "๐Ÿ“Ž (ๆ ‡้ข˜้ข„่งˆ)",
NotificationLevel.FULL: "๐Ÿ’ฌ (ๅฎŒๆ•ดๆถˆๆฏ)",
}
print(f"[Aura] โ†’ {level_map.get(output.level, '')} {output.body}")
engine.set_message_callback(on_message)
# ๅŠ ่ฝฝๆจกๅž‹๏ผˆๅฆ‚ๆžœๆŒ‡ๅฎšไบ†่ทฏๅพ„๏ผ‰
if args.model and not args.dry_run:
print("[Aura] ๆญฃๅœจๅŠ ่ฝฝ DeepSeek R1...")
engine.load_model()
else:
print("[Aura] ไฝฟ็”จ่ง„ๅˆ™ๅผ•ๆ“Ž Fallback๏ผˆๆœชๅŠ ่ฝฝLLM๏ผ‰")
# ๅฏๅŠจ็ณป็ปŸ
engine.start()
try:
simulate_conversation(engine)
except KeyboardInterrupt:
print("\n[Aura] ็”จๆˆทไธญๆ–ญ")
finally:
engine.stop()
print("\n" + "=" * 60)
print(" โœ… ๆผ”็คบๅฎŒๆˆ")
print(" ๅผ€ๆบ้˜ฒๅพกๅฃฐๆ˜Ž: PROJECT_ROOT/PATENT_DEFENSE.md")
print("=" * 60)
if __name__ == "__main__":
main()