Python工具实现高效金融数据获取:yfinance全面实战指南
在金融数据分析领域,获取准确、及时的市场数据是所有分析工作的基础。Python作为数据科学的首选语言,拥有众多金融数据工具,其中yfinance凭借其简洁的API设计和强大的数据获取能力,成为开发者的得力助手。本文将系统介绍如何利用这一Python工具实现高效金融数据处理,从核心功能解析到高级优化方案,帮助你轻松应对各类金融数据获取挑战。
核心功能解析:yfinance能为我们做什么?
yfinance作为一款专注于Yahoo Finance数据获取的Python库,提供了从基础到高级的全方位金融数据服务。无论是股票价格、财务报表,还是市场指数、加密货币数据,都可以通过简洁的API调用来实现。
基础数据获取:一行代码搞定历史行情
获取单只股票的历史数据是yfinance最基本也最常用的功能。通过Ticker对象,我们可以轻松获取从几天到几十年的历史价格数据。
import yfinance as yf
# 创建Ticker对象,指定股票代码
ticker = yf.Ticker("AAPL")
# 获取历史数据,period参数指定时间范围
# 可选值: 1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,max
hist = ticker.history(period="1y")
# 查看数据前5行
print(hist.head())
# 输出示例:
# Open High Low Close Volume Dividends Stock Splits
# Date
# 2023-03-06 152.130005 153.880005 151.259995 153.369995 53703400 0.0 0.0
# 2023-03-07 153.839996 155.210007 153.529999 154.699997 57487100 0.0 0.0
# 2023-03-08 154.979996 155.830002 153.380005 153.800003 56007800 0.0 0.0
# 2023-03-09 154.000000 156.369995 153.869995 155.880005 53210900 0.0 0.0
# 2023-03-10 155.580002 156.410004 154.259995 154.779999 62199500 0.0 0.0
批量数据获取:同时处理多只股票
当需要分析多个股票时,yfinance提供了更高效的批量下载方式,无需创建多个Ticker对象。
import yfinance as yf
# 定义股票列表
tickers = ["AAPL", "MSFT", "GOOGL", "AMZN", "TSLA"]
# 批量下载数据
data = yf.download(
tickers=tickers,
start="2023-01-01",
end="2023-12-31",
interval="1d", # 数据间隔:1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo
group_by="ticker", # 按股票分组数据
auto_adjust=True, # 自动调整价格
prepost=True, # 包含盘前盘后数据
threads=True # 多线程下载
)
# 查看数据结构
print(f"数据形状: {data.shape}")
print(f"包含股票: {data.columns.get_level_values(0).unique()}")
财务数据获取:深入了解公司基本面
除了价格数据,yfinance还能获取公司的财务报表数据,帮助我们从基本面角度分析公司状况。
import yfinance as yf
ticker = yf.Ticker("AAPL")
# 获取 income statement (利润表)
income_stmt = ticker.income_stmt
print("利润表 (最近4个财年):")
print(income_stmt.iloc[:, :4]) # 只显示最近4年数据
# 获取 balance sheet (资产负债表)
balance_sheet = ticker.balance_sheet
print("\n资产负债表 (最近4个财年):")
print(balance_sheet.iloc[:, :4])
# 获取 cash flow (现金流量表)
cash_flow = ticker.cash_flow
print("\n现金流量表 (最近4个财年):")
print(cash_flow.iloc[:, :4])
# 获取关键财务指标
financials = ticker.financials
典型场景应用:如何解决实际数据获取问题?
在实际应用中,我们常常会遇到各种数据获取挑战。下面将针对几个典型场景,介绍如何使用yfinance解决这些实际问题。
场景一:如何处理网络不稳定导致的数据获取失败?
网络问题是数据获取过程中最常见的挑战之一。yfinance提供了多种机制来提高数据获取的可靠性。
import yfinance as yf
from requests.exceptions import RequestException
import time
def safe_download(ticker, max_retries=3, backoff_factor=0.3):
"""
安全下载股票数据,包含重试机制
参数:
ticker: 股票代码
max_retries: 最大重试次数
backoff_factor: 退避因子,控制重试间隔
返回:
成功返回数据,失败返回None
"""
for attempt in range(max_retries):
try:
# 启用修复模式和详细日志
yf.set_log_level('INFO')
data = yf.download(
ticker,
period="1y",
repair=True, # 启用价格修复
timeout=10 # 设置超时时间
)
return data
except RequestException as e:
print(f"尝试 {attempt+1}/{max_retries} 失败: {str(e)}")
if attempt < max_retries - 1:
sleep_time = backoff_factor * (2 ** attempt)
print(f"等待 {sleep_time:.2f} 秒后重试...")
time.sleep(sleep_time)
print(f"已达到最大重试次数 {max_retries},无法获取数据")
return None
# 使用安全下载函数
data = safe_download("AAPL")
if data is not None:
print(f"成功获取数据: {len(data)} 条记录")
场景二:如何获取并解析实时市场数据?
对于需要实时监控市场的应用,yfinance提供了多种实时数据获取方式。
import yfinance as yf
import time
def monitor_real_time(ticker, interval=5):
"""
实时监控股票价格变动
参数:
ticker: 股票代码
interval: 刷新间隔(秒)
"""
print(f"开始实时监控 {ticker} (按Ctrl+C停止)")
prev_price = None
try:
while True:
# 获取实时数据
ticker_obj = yf.Ticker(ticker)
data = ticker_obj.history(period="1d", interval="1m")
if not data.empty:
# 获取最新价格
current_price = data['Close'].iloc[-1]
# 计算价格变动
if prev_price is not None:
change = current_price - prev_price
pct_change = (change / prev_price) * 100
change_str = f"{change:.2f} ({pct_change:.2f}%)"
# 根据涨跌显示不同颜色
if change >= 0:
print(f"\033[92m{time.strftime('%H:%M:%S')} - 价格: {current_price:.2f} 变动: +{change_str}\033[0m")
else:
print(f"\033[91m{time.strftime('%H:%M:%S')} - 价格: {current_price:.2f} 变动: {change_str}\033[0m")
else:
print(f"{time.strftime('%H:%M:%S')} - 初始价格: {current_price:.2f}")
prev_price = current_price
# 等待下一次刷新
time.sleep(interval)
except KeyboardInterrupt:
print("\n监控已停止")
# 监控苹果股票,每5秒刷新一次
monitor_real_time("AAPL", interval=5)
场景三:如何实现数据缓存避免重复请求?
频繁请求相同数据不仅浪费带宽,还可能触发API限制。yfinance内置了缓存机制,可以有效解决这个问题。
import yfinance as yf
import os
from pathlib import Path
def setup_enhanced_cache(cache_dir=None):
"""
配置增强型缓存系统
参数:
cache_dir: 缓存目录路径,默认为用户主目录下的.yfinance-cache
"""
# 设置缓存目录
if cache_dir is None:
cache_dir = Path.home() / ".yfinance-cache"
# 创建缓存目录(如果不存在)
cache_dir.mkdir(parents=True, exist_ok=True)
# 配置yfinance缓存
yf.set_tz_cache_location(str(cache_dir))
# 启用调试日志查看缓存活动
yf.set_log_level('DEBUG')
print(f"缓存已配置,目录: {cache_dir}")
print(f"缓存状态: {'启用' if yf.get_use_cache() else '禁用'}")
return cache_dir
# 设置缓存
cache_dir = setup_enhanced_cache()
# 第一次下载(无缓存)
print("\n第一次下载数据(无缓存):")
%time data1 = yf.download("AAPL", period="1y")
# 第二次下载(有缓存)
print("\n第二次下载数据(有缓存):")
%time data2 = yf.download("AAPL", period="1y")
# 验证数据一致性
print(f"\n两次下载数据是否相同: {data1.equals(data2)}")
高级优化方案:如何提升数据获取效率?
随着数据量的增长和分析复杂度的提高,我们需要对数据获取流程进行优化,以提高效率和可靠性。
多线程并发获取:加速批量数据下载
当需要获取大量股票数据时,单线程下载效率较低。通过多线程技术,我们可以并行下载多个股票数据,显著提高效率。
import yfinance as yf
from concurrent.futures import ThreadPoolExecutor, as_completed
import time
def fetch_ticker_data(ticker):
"""获取单个股票数据的函数"""
try:
ticker_obj = yf.Ticker(ticker)
hist = ticker_obj.history(period="5y")
return (ticker, hist, None)
except Exception as e:
return (ticker, None, str(e))
def parallel_fetch(tickers, max_workers=5):
"""
并行获取多个股票数据
参数:
tickers: 股票代码列表
max_workers: 最大工作线程数
返回:
字典,键为股票代码,值为数据DataFrame
"""
results = {}
errors = {}
start_time = time.time()
with ThreadPoolExecutor(max_workers=max_workers) as executor:
# 创建所有任务
future_to_ticker = {executor.submit(fetch_ticker_data, ticker): ticker for ticker in tickers}
# 处理完成的任务
for future in as_completed(future_to_ticker):
ticker = future_to_ticker[future]
try:
ticker, data, error = future.result()
if error:
errors[ticker] = error
else:
results[ticker] = data
except Exception as e:
errors[ticker] = f"处理时出错: {str(e)}"
end_time = time.time()
duration = end_time - start_time
print(f"完成获取 {len(tickers)} 个股票数据")
print(f"成功: {len(results)}, 失败: {len(errors)}")
print(f"总耗时: {duration:.2f} 秒")
return results, errors
# 测试并行获取
if __name__ == "__main__":
# 股票列表(可以包含更多股票)
tickers = ["AAPL", "MSFT", "GOOGL", "AMZN", "TSLA", "META", "NVDA", "JPM", "JNJ", "WMT"]
# 并行获取数据
results, errors = parallel_fetch(tickers, max_workers=5)
# 显示结果
for ticker, data in results.items():
print(f"\n{ticker}: {len(data)} 条记录")
print(data.head(2))
if errors:
print("\n错误列表:")
for ticker, error in errors.items():
print(f"{ticker}: {error}")
数据质量控制:如何确保获取数据的准确性?
金融数据分析的结论质量直接取决于数据质量。yfinance提供了多种数据清洗和修复功能,帮助我们确保数据准确性。
import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt
def analyze_and_repair_data(ticker):
"""分析并修复股票数据中的异常值"""
# 获取原始数据
ticker_obj = yf.Ticker(ticker)
raw_data = ticker_obj.history(period="5y", repair=False) # 先不修复
print(f"原始数据形状: {raw_data.shape}")
# 启用修复功能获取修复后的数据
repaired_data = ticker_obj.history(period="5y", repair=True)
print(f"修复后数据形状: {repaired_data.shape}")
# 比较修复前后的收盘价差异
combined = pd.DataFrame({
'原始收盘价': raw_data['Close'],
'修复后收盘价': repaired_data['Close']
})
# 找出差异较大的点
combined['差异百分比'] = ((combined['修复后收盘价'] - combined['原始收盘价']) / combined['原始收盘价']) * 100
significant_changes = combined[abs(combined['差异百分比']) > 1] # 差异超过1%的点
if not significant_changes.empty:
print(f"发现 {len(significant_changes)} 个显著差异点:")
print(significant_changes)
# 可视化差异
plt.figure(figsize=(15, 7))
plt.plot(combined['原始收盘价'], label='原始收盘价', alpha=0.5)
plt.plot(combined['修复后收盘价'], label='修复后收盘价', alpha=0.8)
plt.scatter(significant_changes.index, significant_changes['修复后收盘价'],
color='red', label='显著修复点')
plt.title(f'{ticker} 股价修复前后对比')
plt.xlabel('日期')
plt.ylabel('价格')
plt.legend()
plt.show()
else:
print("未发现显著差异点")
return repaired_data
# 分析苹果股票数据
data = analyze_and_repair_data("AAPL")
项目版本管理:如何确保代码与库版本兼容?
开源项目的API可能会随版本更新而变化,为确保代码稳定性,我们需要合理管理项目版本。yfinance项目采用了结构化的分支管理策略,确保版本稳定性和开发效率。
图:yfinance项目采用的分支管理策略,通过main分支维护稳定版本,dev分支进行开发,feature分支实现新功能,确保代码质量和版本稳定性
以下是版本管理的最佳实践:
# 1. 创建虚拟环境隔离项目依赖
python -m venv yfinance-env
source yfinance-env/bin/activate # Linux/Mac
# 或
yfinance-env\Scripts\activate # Windows
# 2. 安装特定版本的yfinance以确保兼容性
pip install yfinance==0.2.31
# 3. 生成依赖文件
pip freeze > requirements.txt
# 4. 在其他环境中复现依赖
pip install -r requirements.txt
# 5. 如需升级,先查看版本历史
pip show yfinance
# 6. 安全升级
pip install yfinance --upgrade --no-cache-dir
实战案例分析:从数据获取到决策支持
案例一:股票投资组合分析与可视化
下面我们将通过一个完整案例,展示如何使用yfinance获取投资组合数据,进行分析并可视化结果。
import yfinance as yf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from datetime import datetime, timedelta
# 设置中文显示
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
class PortfolioAnalyzer:
def __init__(self, portfolio=None, start_date=None, end_date=None):
"""
投资组合分析器
参数:
portfolio: 字典,键为股票代码,值为持仓比例
start_date: 开始日期,格式"YYYY-MM-DD"
end_date: 结束日期,格式"YYYY-MM-DD"
"""
self.portfolio = portfolio or {"AAPL": 0.3, "MSFT": 0.2, "GOOGL": 0.2, "AMZN": 0.15, "TSLA": 0.15}
self.start_date = start_date or (datetime.now() - timedelta(days=365)).strftime("%Y-%m-%d")
self.end_date = end_date or datetime.now().strftime("%Y-%m-%d")
self.data = None
self.returns = None
self.portfolio_returns = None
def fetch_data(self):
"""获取投资组合中所有股票的历史数据"""
print(f"获取数据: {self.start_date} 至 {self.end_date}")
tickers = list(self.portfolio.keys())
self.data = yf.download(
tickers,
start=self.start_date,
end=self.end_date,
interval="1d",
auto_adjust=True
)['Close']
# 检查是否有缺失数据
missing = self.data.isnull().sum()
if missing.any():
print("警告: 发现缺失数据:")
print(missing[missing > 0])
# 填充缺失数据
self.data = self.data.ffill().bfill()
return self.data
def calculate_returns(self):
"""计算每日收益率"""
if self.data is None:
self.fetch_data()
# 计算每日收益率
self.returns = self.data.pct_change().dropna()
# 计算投资组合收益率
weights = np.array(list(self.portfolio.values()))
self.portfolio_returns = self.returns.dot(weights)
return self.returns, self.portfolio_returns
def analyze_risk_return(self):
"""分析风险和收益特征"""
if self.returns is None:
self.calculate_returns()
# 计算关键指标
results = {}
# 对于单个股票
for ticker in self.returns.columns:
returns = self.returns[ticker]
results[ticker] = {
"年化收益率": (1 + returns.mean()) ** 252 - 1,
"波动率": returns.std() * np.sqrt(252),
"夏普比率": returns.mean() / returns.std() * np.sqrt(252),
"最大回撤": self.calculate_max_drawdown(self.data[ticker])
}
# 对于投资组合
portfolio_rets = self.portfolio_returns
results["组合"] = {
"年化收益率": (1 + portfolio_rets.mean()) ** 252 - 1,
"波动率": portfolio_rets.std() * np.sqrt(252),
"夏普比率": portfolio_rets.mean() / portfolio_rets.std() * np.sqrt(252),
"最大回撤": self.calculate_max_drawdown(
(1 + portfolio_rets).cumprod() * 10000 # 假设初始投资10000元
)
}
# 转换为DataFrame并格式化
results_df = pd.DataFrame(results).T
results_df["年化收益率"] = results_df["年化收益率"].apply(lambda x: f"{x:.2%}")
results_df["波动率"] = results_df["波动率"].apply(lambda x: f"{x:.2%}")
results_df["夏普比率"] = results_df["夏普比率"].apply(lambda x: f"{x:.2f}")
results_df["最大回撤"] = results_df["最大回撤"].apply(lambda x: f"{x:.2%}")
return results_df
@staticmethod
def calculate_max_drawdown(series):
"""计算最大回撤"""
rolling_max = series.cummax()
drawdown = (series - rolling_max) / rolling_max
return drawdown.min()
def visualize_results(self):
"""可视化分析结果"""
if self.returns is None:
self.calculate_returns()
# 1. 累计收益曲线
plt.figure(figsize=(12, 6))
(1 + self.returns).cumprod().plot()
plt.title("各资产累计收益率")
plt.ylabel("累计收益倍数")
plt.xlabel("日期")
plt.grid(True, alpha=0.3)
plt.show()
# 2. 投资组合累计收益
plt.figure(figsize=(12, 6))
(1 + self.portfolio_returns).cumprod().plot(color='black', linewidth=2)
plt.title("投资组合累计收益率")
plt.ylabel("累计收益倍数")
plt.xlabel("日期")
plt.grid(True, alpha=0.3)
plt.show()
# 3. 相关性热图
plt.figure(figsize=(10, 8))
corr = self.returns.corr()
sns.heatmap(corr, annot=True, cmap="coolwarm", vmin=-1, vmax=1)
plt.title("资产相关性矩阵")
plt.show()
# 使用投资组合分析器
if __name__ == "__main__":
# 创建分析器实例
analyzer = PortfolioAnalyzer(
portfolio={
"AAPL": 0.3, # 苹果
"MSFT": 0.2, # 微软
"GOOGL": 0.2, # 谷歌
"AMZN": 0.15, # 亚马逊
"TSLA": 0.15 # 特斯拉
},
start_date="2022-01-01",
end_date="2023-12-31"
)
# 获取数据
analyzer.fetch_data()
# 计算收益率
analyzer.calculate_returns()
# 分析风险收益
risk_return = analyzer.analyze_risk_return()
print("风险收益分析:")
print(risk_return)
# 可视化结果
analyzer.visualize_results()
案例二:金融数据与其他数据源的集成应用
yfinance不仅可以单独使用,还可以与其他金融数据源和分析工具集成,构建更全面的金融分析系统。
import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime, timedelta
# 设置中文显示
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams['axes.unicode_minus'] = False
def compare_with_benchmark(ticker, benchmark="^GSPC", years=5):
"""
比较股票与市场基准指数的表现
参数:
ticker: 股票代码
benchmark: 基准指数代码,默认为标普500指数(^GSPC)
years: 比较的年数
"""
end_date = datetime.now()
start_date = end_date - timedelta(days=years*365)
# 获取股票和基准指数数据
data = yf.download(
[ticker, benchmark],
start=start_date,
end=end_date,
auto_adjust=True
)['Close']
# 重命名列以便识别
data.columns = [ticker, "基准指数"]
# 计算累计收益率(归一化到100)
normalized = (data / data.iloc[0] * 100)
# 绘制对比图
plt.figure(figsize=(12, 6))
normalized.plot()
plt.title(f"{ticker} 与 {benchmark} {years}年表现对比")
plt.ylabel("累计收益(初始值=100)")
plt.xlabel("日期")
plt.grid(True, alpha=0.3)
plt.legend()
plt.show()
# 计算关键指标
returns = data.pct_change().dropna()
# 年化收益率
annual_returns = (1 + returns.mean()) ** 252 - 1
# 年化波动率
annual_volatility = returns.std() * np.sqrt(252)
# 夏普比率(假设无风险利率为0)
sharpe_ratio = annual_returns / annual_volatility
# 最大回撤
def max_drawdown(series):
rolling_max = series.cummax()
drawdown = (series - rolling_max) / rolling_max
return drawdown.min()
drawdowns = data.apply(max_drawdown)
# 整理结果
results = pd.DataFrame({
"年化收益率": annual_returns,
"年化波动率": annual_volatility,
"夏普比率": sharpe_ratio,
"最大回撤": drawdowns
})
# 格式化输出
results["年化收益率"] = results["年化收益率"].apply(lambda x: f"{x:.2%}")
results["年化波动率"] = results["年化波动率"].apply(lambda x: f"{x:.2%}")
results["夏普比率"] = results["夏普比率"].apply(lambda x: f"{x:.2f}")
results["最大回撤"] = results["最大回撤"].apply(lambda x: f"{x:.2%}")
return results
# 比较苹果股票与标普500指数
results = compare_with_benchmark("AAPL", "^GSPC", years=5)
print("表现对比结果:")
print(results)
与其他金融数据API的对比分析
在选择金融数据工具时,了解不同API的优缺点有助于我们做出最合适的选择。以下是yfinance与其他常见金融数据API的对比:
| 特性 | yfinance | Alpha Vantage | IEX Cloud | Quandl |
|---|---|---|---|---|
| 成本 | 免费 | 免费(有限制)/付费 | 付费(有免费层) | 免费(部分数据)/付费 |
| 数据源 | Yahoo Finance | 多种来源 | IEX交易所 | 多种来源 |
| API类型 | Python库 | REST API | REST API | REST API |
| 数据延迟 | 15-20分钟 | 15-20分钟 | 实时(付费) | varies |
| 历史数据深度 | 多年 | 20+年 | 15+年 | 数十年 |
| 支持的资产类型 | 股票、指数、ETF、加密货币等 | 股票、指数、加密货币等 | 美国股票为主 | 多种资产 |
| Python支持 | 原生支持 | 第三方库 | 第三方库 | 官方库 |
| 易用性 | 高 | 中 | 中 | 中 |
| 限制 | 无明确限制(可能有速率限制) | 5次/分钟,500次/天 | 免费层:50万次/月 | 免费层有限制 |
💡 选择建议:如果您是Python开发者,需要快速获取金融数据且预算有限,yfinance是理想选择;如果需要更高质量的数据或特定类型的金融工具数据,可能需要考虑商业API如IEX Cloud或Quandl。
项目贡献指南和常见问题解答
如何为yfinance项目做贡献?
yfinance作为一个开源项目,欢迎社区贡献。以下是参与贡献的基本步骤:
-
** Fork项目 **:
git clone https://gitcode.com/GitHub_Trending/yf/yfinance cd yfinance -
** 创建开发分支 **:
git checkout -b feature/your-feature-name -
** 安装开发依赖 **:
pip install -e .[dev] -
** 实现功能或修复bug **:
- 遵循项目代码风格
- 添加单元测试
- 更新文档
-
** 运行测试 **:
pytest tests/ -
** 提交更改并创建Pull Request **:
git add . git commit -m "Add feature: your feature description" git push origin feature/your-feature-name
常见问题解答
Q1: 为什么我获取的数据与Yahoo Finance网站上显示的数据不一致?
A1: 可能有以下几个原因:
- 数据调整方式不同:yfinance默认使用"自动调整"价格,而网站可能显示"未调整"价格
- 时间 zone差异:确保你的代码中设置了正确的时区
- 数据延迟:yfinance的数据可能有15-20分钟的延迟
- 数据修复:yfinance的repair=True选项可能修改了原始数据
Q2: 如何处理"Too Many Requests"错误?
A2: 这通常是因为请求频率过高触发了Yahoo Finance的反爬机制。解决方法包括:
- 减少请求频率,添加适当的延迟
- 使用缓存减少重复请求
- 实现指数退避重试机制
- 考虑使用代理服务器分散请求
Q3: yfinance是否支持加密货币数据?
A3: 是的,yfinance支持获取加密货币数据。使用加密货币的代码加上对应交易所后缀,例如:
# 获取比特币数据
btc = yf.Ticker("BTC-USD") # USD计价的比特币
hist = btc.history(period="1y")
Q4: 如何获取国际市场的股票数据?
A4: yfinance支持国际市场股票,需要在股票代码后添加对应国家/地区的交易所后缀,例如:
# 获取中国市场股票(上海证券交易所)
china_stock = yf.Ticker("600036.SS") # 招商银行
# 获取香港市场股票
hk_stock = yf.Ticker("00700.HK") # 腾讯控股
通过本文的介绍,相信你已经对如何使用yfinance这一Python工具进行高效金融数据获取有了全面了解。无论是基础的数据下载,还是高级的投资组合分析,yfinance都能为你提供强大的支持。随着金融数据应用场景的不断扩展,掌握这一工具将为你的金融分析工作带来极大便利。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0223- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
AntSK基于.Net9 + AntBlazor + SemanticKernel 和KernelMemory 打造的AI知识库/智能体,支持本地离线AI大模型。可以不联网离线运行。支持aspire观测应用数据CSS02
