Quick Start Guide

快速开始

从安装到跑通第一个分析任务,大概 5 分钟。如果你之前用过 Python 的 pip,会更快。

1. 安装

Python 3.10 或更高版本。低于 3.10 会报语法错误,因为我们用了 match/case 和一些新的类型标注。

# 推荐用 venv 隔离环境
python -m venv muyuan-env
source muyuan-env/bin/activate  # Windows: muyuan-env\Scripts\activate

# 安装
pip install muyuan-ai

安装完成后验证一下:

muyuan --version
# 输出: muyuan-ai 0.3.0

如果你想从源码安装(比如要改代码或者跑测试):

git clone https://github.com/muyuan-ai/muyuan-ai.git
cd muyuan-ai
pip install -e ".[dev]"  # 安装开发依赖
pytest                    # 跑一遍测试确认环境没问题

2. 最小可运行示例

下面这段代码做了三件事:抓取最近 24 小时的科技行业新闻,跑一遍趋势分析,然后输出投资建议。大概 15 行代码。

from muyuan import Collector, Analyzer, Advisor

# 1. 初始化收集器,指定数据源和过滤条件
collector = Collector(
    sources=["sina_news", "eastmoney"],
    filters={
        "sector": "technology",
        "min_relevance": 0.6
    }
)

# 2. 抓取数据
data = collector.fetch(period="24h")
print(f"抓到 {len(data.articles)} 篇文章")

# 3. 分析
insights = Analyzer.run(data, model="sentiment_v2")

# 4. 生成建议
advice = Advisor.generate(
    insights,
    risk_level="moderate",
    horizon="medium_term"
)

# 5. 输出
print(advice.summary)
print("---")
for rec in advice.recommendations:
    print(f"[{rec.confidence:.0%}] {rec.action} {rec.target} — {rec.reason}")

运行后你会看到类似这样的输出:

抓到 47 篇文章
科技板块短期承压,但 AI 基建方向中长期确定性高。
---
[82%] 关注 算力基础设施 — 三大运营商资本开支计划超预期
[71%] 观望 消费电子 — 需求复苏信号不明确,等待 Q2 财报
[65%] 减持 在线教育 — 政策风险仍在释放中

提示:第一次运行会比较慢(大概 30-60 秒),因为要下载情感分析模型。后续运行会缓存模型,通常 5-10 秒出结果。

3. 配置文件

第一次运行 muyuan init 会在当前目录生成 config.yaml。你也可以手动创建。

# config.yaml — 目远AI 配置文件

app:
  name: "my-muyuan-instance"
  log_level: "info"          # debug / info / warning / error
  cache_dir: "~/.muyuan/cache"

collector:
  default_sources:
    - "sina_news"
    - "eastmoney"
    - "xueqiu"
  fetch_interval: 3600       # 抓取间隔,单位秒
  max_articles: 500          # 单次最大抓取量
  proxy: null                  # HTTP 代理,格式 "http://host:port"

analyzer:
  model: "sentiment_v2"       # 分析模型版本
  language: "zh"              # zh / en / auto
  min_confidence: 0.5        # 低于此阈值的分析结果会被丢弃

advisor:
  risk_level: "moderate"      # conservative / moderate / aggressive
  horizon: "medium_term"     # short_term / medium_term / long_term
  max_recommendations: 10

database:
  url: "postgresql://localhost:5432/muyuan"
  pool_size: 5

redis:
  url: "redis://localhost:6379/0"
  ttl: 7200                   # 缓存过期时间,单位秒

关键字段说明

字段说明默认值
collector.fetch_interval自动抓取的间隔。设太小会被数据源限速3600
analyzer.modelv1 是基础版,v2 加了情感分析,v2 需要约 800MB 磁盘空间sentiment_v2
advisor.risk_level影响建议的激进程度。conservative 几乎不会推荐买入moderate
database.urlPostgreSQL 连接串。不配置的话会用 SQLite 本地文件sqlite:///muyuan.db

4. 数据源配置

目远AI 内置了 12 个数据源。你也可以写自己的。

内置数据源

名称类型覆盖范围需要 API Key
sina_news新闻新浪财经新闻
eastmoney新闻 + 数据东方财富资讯和行情
xueqiu社交雪球社区讨论
cninfo公告巨潮资讯上市公司公告
sse_announce公告上交所公告
szse_announce公告深交所公告
tushare行情数据A 股历史和实时行情
akshare行情数据多市场行情数据

自定义数据源

写一个继承 BaseCollector 的类就行。下面是个最简单的例子:

from muyuan.collectors.base import BaseCollector, Article
from datetime import datetime
import httpx

class MyRSSCollector(BaseCollector):
    """从 RSS 源抓取文章"""

    name = "my_rss"
    requires_api_key = False

    def __init__(self, feed_url: str):
        self.feed_url = feed_url

    async def fetch(self, since: datetime) -> list[Article]:
        async with httpx.AsyncClient() as client:
            resp = await client.get(self.feed_url)
            entries = self._parse_feed(resp.text)

        return [
            Article(
                title=e["title"],
                content=e["summary"],
                source=self.name,
                published_at=e["published"],
                url=e["link"],
            )
            for e in entries
            if e["published"] >= since
        ]

然后在 config.yaml 里注册:

collector:
  custom_sources:
    - module: "my_collectors.rss"
      class: "MyRSSCollector"
      args:
        feed_url: "https://example.com/finance/rss.xml"

5. 常见问题

pip install 报错 "Python version not supported"

你的 Python 版本低于 3.10。运行 python --version 确认一下。macOS 自带的 Python 通常是 3.9,需要用 brew 或 pyenv 装新版本。

运行时报 "No API key for tushare"

tushare 数据源需要 API key。去 tushare.pro 注册一个免费账号,然后在 config.yaml 里加上:

secrets:
  tushare_token: "你的 token"

或者设环境变量 MUYUAN_TUSHARE_TOKEN。环境变量优先级高于配置文件。

PostgreSQL 连不上

不装 PostgreSQL 也能跑。不配置 database.url 的话,默认用 SQLite。SQLite 对个人使用完全够了,只有在需要多进程并发写入时才需要 PostgreSQL。

抓取速度很慢

检查两件事:一是网络环境(部分数据源在海外需要代理),二是 collector.max_articles 设得太大。建议先用 100 试试,确认流程通了再调大。

模型下载失败

情感分析模型托管在 HuggingFace 上,国内访问可能不稳定。两个办法:设 HF_ENDPOINT=https://hf-mirror.com 用镜像站,或者手动下载模型文件放到 ~/.muyuan/models/ 目录下。