【必须拥有付费商业许可证】微软 M365 Copilot 转 OpenAI API py 脚本

2026-04-11 13:131阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

因为 team 车队的阵亡,没法免费养虾,想着微软还有个 M365 Copilot ,想着有没有办法转成兼容 OpenAI API 的代理进行养虾。搜索了一下发现 Microsoft 从 2025 年底开始逐步开放了 Microsoft 365 Copilot Chat API(preview → beta),路径是:

https://graph.microsoft.com/beta/copilot/conversations https://graph.microsoft.com/beta/copilot/conversations/{id}/chat https://graph.microsoft.com/beta/copilot/conversations/{id}/chatOverStream ← 这个支持 SSE streaming

如果有 M365 Copilot 许可,是可以直接调用的。贫穷促使我在咸鱼花巨款搞了个 E3 管理员账号账号,折腾了一下午,才知道必须要拥有 Microsoft 365 Copilot 商业许可证才行,单纯的 Office 365 E3 Developer 是不行的。

image1106×411 15.7 KB

image793×277 13.3 KB

被 Gemini 看穿了,现在把脚本分享出来给能用着的佬,或者给佬们提供个思路。

SnowShot_2026-03-13_16-43-08772×1214 144 KB


py 脚本使用教程

微软账号(工作或学校账号),必须拥有付费的 Microsoft 365 Copilot 商业许可证。普通的 E5 开发者白嫖号、个人账号或只有基础 Office 权限的账号,在最终调用时都会报错提示 You don’t have a valid license

import os import json import time import requests from fastapi import FastAPI, Request from fastapi.responses import StreamingResponse from fastapi.middleware.cors import CORSMiddleware import uvicorn # ========================================== # 0. 网络代理配置 (根据实际情况修改) # ========================================== # 如果你在国内,或者连接微软服务器不稳定,请配置你的本地代理端口 # 常见的本地代理端口比如: 7890, 3066, 1080 等。如果不需要代理,请将这两行注释掉(#) PROXY_URL = 'http://127.0.0.1:7890' os.environ['http_proxy'] = PROXY_URL os.environ['https_proxy'] = PROXY_URL # ========================================== # 1. 你的 Entra ID (Azure AD) 应用凭证配置 # ========================================== # 请填入你自己在 Microsoft Entra ID 注册的应用程序信息 TENANT_ID = 'YOUR_TENANT_ID_HERE' # 替换为你的 目录(租户) ID CLIENT_ID = 'YOUR_CLIENT_ID_HERE' # 替换为你的 应用程序(客户端) ID app = FastAPI() # 允许跨域,方便第三方客户端调用 app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) ACCESS_TOKEN = None # ========================================== # 2. 设备代码流授权 (获取当前登录用户的 Token) # ========================================== def get_user_token(): global ACCESS_TOKEN device_code_url = f"https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/devicecode" token_url = f"https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/token" res = requests.post(device_code_url, data={ "client_id": CLIENT_ID, "scope": "https://graph.microsoft.com/.default offline_access" }).json() print("\n" + "="*50) print(f"⚠️ 请打开浏览器访问: {res['verification_uri']}") print(f"🔑 并输入此设备代码进行授权: {res['user_code']}") print("="*50 + "\n") interval = res['interval'] while True: time.sleep(interval) token_res = requests.post(token_url, data={ "grant_type": "urn:ietf:params:oauth:grant-type:device_code", "client_id": CLIENT_ID, "device_code": res['device_code'] }).json() if "access_token" in token_res: print("✅ 登录成功!已获取 Copilot 访问权限。") ACCESS_TOKEN = token_res["access_token"] return ACCESS_TOKEN elif token_res.get("error") != "authorization_pending": print("❌ 授权发生错误:", token_res.get("error_description")) break # ========================================== # 3. 核心 API:将 OpenAI 格式转换为 Microsoft Graph 格式 # ========================================== @app.post("/v1/chat/completions") async def chat_completions(request: Request): global ACCESS_TOKEN if not ACCESS_TOKEN: return {"error": "Token not ready. Please check server console."} body = await request.json() messages = body.get("messages", []) is_stream = body.get("stream", False) # 获取用户的最后一次提问内容 user_prompt = messages[-1]["content"] if messages else "" headers = { 'Authorization': f'Bearer {ACCESS_TOKEN}', 'Content-Type': 'application/json', 'Accept': 'application/json' } # 步骤 A: 创建一个新的 Copilot 对话线程 conv_url = 'https://graph.microsoft.com/beta/copilot/conversations' conv_res = requests.post(conv_url, headers=headers, json={}) if conv_res.status_code != 201: # 拦截错误并包装为假流,防止第三方客户端直接崩溃 def fake_error_stream(): error_msg = f"\n[创建对话失败]: {conv_res.text}\n" yield f'data: {{"id": "error", "object": "chat.completion.chunk", "model": "m365-copilot", "choices": [{{"index": 0, "delta": {{"content": "{error_msg}"}}, "finish_reason": "stop"}}]}}\n\n' yield "data: [DONE]\n\n" return StreamingResponse(fake_error_stream(), media_type="text/event-stream") conv_id = conv_res.json().get("id") # 步骤 B: 建立流式连接并发送提问 def generate_stream(): chat_url = f'https://graph.microsoft.com/beta/copilot/conversations/{conv_id}/chatOverStream' # 微软指定的 Payload 格式 (需要提供时区信息) payload = { "message": { "text": user_prompt }, "locationHint": { "timeZone": "Asia/Shanghai" } } try: with requests.post(chat_url, headers=headers, json=payload, stream=True, timeout=60) as response: # 处理接口 HTTP 报错 if response.status_code != 200: error_text = response.text.replace('"', '\\"').replace('\n', ' ') error_chunk = { "id": conv_id, "object": "chat.completion.chunk", "model": "m365-copilot", "choices": [{"index": 0, "delta": {"content": f"\n[微软接口报错 {response.status_code}]: {error_text}\n"}, "finish_reason": "stop"}] } yield f"data: {json.dumps(error_chunk, ensure_ascii=False)}\n\n" yield "data: [DONE]\n\n" return # 处理正常返回的 SSE 流 for line in response.iter_lines(): if line: decoded_line = line.decode('utf-8') # 可以取消下面的注释以在终端查看原始流数据 (Debug 用) # print(f"DEBUG - 收到流数据: {decoded_line}") if decoded_line.startswith('data: '): raw_data = decoded_line[6:] if raw_data == "[DONE]": yield "data: [DONE]\n\n" break try: ms_chunk = json.loads(raw_data) # 拦截流内部报出的异常信息 (例如没有分配 Copilot 许可证) if "error" in ms_chunk: err_str = str(ms_chunk["error"]).replace('"', '\\"').replace('\n', ' ') error_chunk = { "id": conv_id, "object": "chat.completion.chunk", "model": "m365-copilot", "choices": [{"index": 0, "delta": {"content": f"\n[流内部报错]: {err_str}\n"}, "finish_reason": "stop"}] } yield f"data: {json.dumps(error_chunk, ensure_ascii=False)}\n\n" continue # 兼容微软不稳定的多层嵌套格式,提取正文内容 content = "" if "delta" in ms_chunk and isinstance(ms_chunk["delta"], dict): content = ms_chunk["delta"].get("text", "") or ms_chunk["delta"].get("content", "") if not content and "message" in ms_chunk and isinstance(ms_chunk["message"], dict): content = ms_chunk["message"].get("text", "") or ms_chunk["message"].get("content", "") if not content: content = ms_chunk.get("text", "") or ms_chunk.get("content", "") # 包装成标准的 OpenAI API 格式推给客户端 if content: openai_chunk = { "id": conv_id, "object": "chat.completion.chunk", "model": "m365-copilot", "choices": [{"index": 0, "delta": {"content": content}, "finish_reason": None}] } yield f"data: {json.dumps(openai_chunk, ensure_ascii=False)}\n\n" except json.JSONDecodeError: pass except Exception as e: error_chunk = { "id": conv_id, "object": "chat.completion.chunk", "model": "m365-copilot", "choices": [{"index": 0, "delta": {"content": f"\n[本地代理运行异常]: {str(e)}\n"}, "finish_reason": "stop"}] } yield f"data: {json.dumps(error_chunk, ensure_ascii=False)}\n\n" yield "data: [DONE]\n\n" # 如果客户端请求开启了 Stream 流式,则返回生成器 if is_stream: return StreamingResponse(generate_stream(), media_type="text/event-stream") else: return {"error": "请在你的 AI 客户端 (如 Cherry Studio) 中开启流式输出 (Stream)。此接口暂不支持非流式请求。"} # ========================================== # 4. 启动服务监听 # ========================================== if __name__ == "__main__": print("🚀 正在启动 M365 Copilot 本地转换代理服务...") get_user_token() # 默认监听本地的 12801 端口 uvicorn.run(app, host="127.0.0.1", port=12801, log_level="warning")

第一步:准备环境与配置

  1. 确保你的电脑上安装了 Python(推荐 3.8 以上版本)。
  2. 在命令行终端(终端/cmd/PowerShell)中安装依赖库: pip install fastapi uvicorn requests
  3. 打开 copilot_wrapper.py 文件,完成以下修改:
  • 代理设置:根据你本地的网络环境修改 PROXY_URL(如 http://127.0.0.1:7890)。如果你不需要代理,可以直接注释掉这段代码。
  • 凭证设置:填入你在 Microsoft Entra ID (Azure AD) 中注册的应用程序 TENANT_IDCLIENT_ID。(注意:该应用必须在“身份验证-高级设置”中开启**“允许公共客户端流 (Allow public client flows)”**)。
  • 具体的注册步骤和授权API权限自行咨询AI,记住务必选择应用程序权限
    image1802×1116 263 KB

第二步:启动代理服务与账号授权

  1. 在命令行中进入该脚本所在的文件夹,运行: python copilot_wrapper.py
  2. 终端会打印出一个微软的登录网址(如 https://login.microsoft.com/device)以及一串 字母+数字组成的设备代码
  3. 在浏览器中打开该网址,输入代码,并登录你拥有 M365 Copilot 权限的账号进行授权。
  4. 授权成功后,终端会提示 ✅ 登录成功!已获取 Copilot 访问权限。 并停留在运行状态(不要关闭这个黑框)。

第三步:在第三方客户端中调用

以 Cherry Studio 为例:

  1. 打开 Cherry Studio 的设置模型提供商 → 添加一个 自定义 OpenAI 渠道。
  2. API 地址 (Base URL):填写 http://127.0.0.1:12801
  3. API Key:随便填写(例如 sk-test1234,本脚本由于使用微软 Oauth,无需使用此密钥)。
  4. 添加模型:手动添加一个名为 m365-copilot 的模型。
  5. 极其关键:确保你开启了流式输出 (Stream) 功能。

配置完成后,就可以在聊天窗口选择 m365-copilot 模型,开始与你的企业级超级助理对话了。

网友解答:
--【壹】--:

感谢大佬!


--【贰】--:

之前薅的五年可以吗)
我记得可以用m365网页来着


--【叁】--:

我查了下这个路径是正规路径,但能不能用脚本调用就不知道了,如果你有正版订阅,还是走官方路径调用 API 稳妥


--【肆】--:

期待教程!!大佬还是强的!!!


--【伍】--:

大佬们试一下吧,成功了带我一个


--【陆】--:

马克了,有空试试


--【柒】--:

微软的gpt感觉很降智


--【捌】--:

佬用的是前面楼层说的那些订阅之一嘛
(是的话我也整整看


--【玖】--:

那期待一波大佬的api看看效果,网页是真的降智


--【拾】--:

佬,这个是正规的吗?会不会封号封ip之类的,在公司不知道敢用不


--【拾壹】--:

个人号应该是用不了的,edu号不知道行不行


--【拾贰】--:

image1189×552 67 KB
不是一个渠道,后台都上不去


--【拾叁】--:

前提是你的许可证合规(正规商业许可证),但是国内微软很多地方都有业务,如果你在公司,我劝你慎重。别公司被发函了。


--【拾肆】--:

其实是微软的提示词和特调导致的


--【拾伍】--:

感谢大佬


--【拾陆】--:

之前白嫖的E3不行对吧,要是之前薅的五年的可以的话能否有人踢我一下


--【拾柒】--:

我怕发出来渠道就褒姒了)
在想怎么给大活儿用


--【拾捌】--:

image1224×212 23.8 KB
解决了,我晚点看看怎么处理


--【拾玖】--:

逆向的话
是不是搞公益站会好控制一点

标签:人工智能
问题描述:

因为 team 车队的阵亡,没法免费养虾,想着微软还有个 M365 Copilot ,想着有没有办法转成兼容 OpenAI API 的代理进行养虾。搜索了一下发现 Microsoft 从 2025 年底开始逐步开放了 Microsoft 365 Copilot Chat API(preview → beta),路径是:

https://graph.microsoft.com/beta/copilot/conversations https://graph.microsoft.com/beta/copilot/conversations/{id}/chat https://graph.microsoft.com/beta/copilot/conversations/{id}/chatOverStream ← 这个支持 SSE streaming

如果有 M365 Copilot 许可,是可以直接调用的。贫穷促使我在咸鱼花巨款搞了个 E3 管理员账号账号,折腾了一下午,才知道必须要拥有 Microsoft 365 Copilot 商业许可证才行,单纯的 Office 365 E3 Developer 是不行的。

image1106×411 15.7 KB

image793×277 13.3 KB

被 Gemini 看穿了,现在把脚本分享出来给能用着的佬,或者给佬们提供个思路。

SnowShot_2026-03-13_16-43-08772×1214 144 KB


py 脚本使用教程

微软账号(工作或学校账号),必须拥有付费的 Microsoft 365 Copilot 商业许可证。普通的 E5 开发者白嫖号、个人账号或只有基础 Office 权限的账号,在最终调用时都会报错提示 You don’t have a valid license

import os import json import time import requests from fastapi import FastAPI, Request from fastapi.responses import StreamingResponse from fastapi.middleware.cors import CORSMiddleware import uvicorn # ========================================== # 0. 网络代理配置 (根据实际情况修改) # ========================================== # 如果你在国内,或者连接微软服务器不稳定,请配置你的本地代理端口 # 常见的本地代理端口比如: 7890, 3066, 1080 等。如果不需要代理,请将这两行注释掉(#) PROXY_URL = 'http://127.0.0.1:7890' os.environ['http_proxy'] = PROXY_URL os.environ['https_proxy'] = PROXY_URL # ========================================== # 1. 你的 Entra ID (Azure AD) 应用凭证配置 # ========================================== # 请填入你自己在 Microsoft Entra ID 注册的应用程序信息 TENANT_ID = 'YOUR_TENANT_ID_HERE' # 替换为你的 目录(租户) ID CLIENT_ID = 'YOUR_CLIENT_ID_HERE' # 替换为你的 应用程序(客户端) ID app = FastAPI() # 允许跨域,方便第三方客户端调用 app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) ACCESS_TOKEN = None # ========================================== # 2. 设备代码流授权 (获取当前登录用户的 Token) # ========================================== def get_user_token(): global ACCESS_TOKEN device_code_url = f"https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/devicecode" token_url = f"https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/token" res = requests.post(device_code_url, data={ "client_id": CLIENT_ID, "scope": "https://graph.microsoft.com/.default offline_access" }).json() print("\n" + "="*50) print(f"⚠️ 请打开浏览器访问: {res['verification_uri']}") print(f"🔑 并输入此设备代码进行授权: {res['user_code']}") print("="*50 + "\n") interval = res['interval'] while True: time.sleep(interval) token_res = requests.post(token_url, data={ "grant_type": "urn:ietf:params:oauth:grant-type:device_code", "client_id": CLIENT_ID, "device_code": res['device_code'] }).json() if "access_token" in token_res: print("✅ 登录成功!已获取 Copilot 访问权限。") ACCESS_TOKEN = token_res["access_token"] return ACCESS_TOKEN elif token_res.get("error") != "authorization_pending": print("❌ 授权发生错误:", token_res.get("error_description")) break # ========================================== # 3. 核心 API:将 OpenAI 格式转换为 Microsoft Graph 格式 # ========================================== @app.post("/v1/chat/completions") async def chat_completions(request: Request): global ACCESS_TOKEN if not ACCESS_TOKEN: return {"error": "Token not ready. Please check server console."} body = await request.json() messages = body.get("messages", []) is_stream = body.get("stream", False) # 获取用户的最后一次提问内容 user_prompt = messages[-1]["content"] if messages else "" headers = { 'Authorization': f'Bearer {ACCESS_TOKEN}', 'Content-Type': 'application/json', 'Accept': 'application/json' } # 步骤 A: 创建一个新的 Copilot 对话线程 conv_url = 'https://graph.microsoft.com/beta/copilot/conversations' conv_res = requests.post(conv_url, headers=headers, json={}) if conv_res.status_code != 201: # 拦截错误并包装为假流,防止第三方客户端直接崩溃 def fake_error_stream(): error_msg = f"\n[创建对话失败]: {conv_res.text}\n" yield f'data: {{"id": "error", "object": "chat.completion.chunk", "model": "m365-copilot", "choices": [{{"index": 0, "delta": {{"content": "{error_msg}"}}, "finish_reason": "stop"}}]}}\n\n' yield "data: [DONE]\n\n" return StreamingResponse(fake_error_stream(), media_type="text/event-stream") conv_id = conv_res.json().get("id") # 步骤 B: 建立流式连接并发送提问 def generate_stream(): chat_url = f'https://graph.microsoft.com/beta/copilot/conversations/{conv_id}/chatOverStream' # 微软指定的 Payload 格式 (需要提供时区信息) payload = { "message": { "text": user_prompt }, "locationHint": { "timeZone": "Asia/Shanghai" } } try: with requests.post(chat_url, headers=headers, json=payload, stream=True, timeout=60) as response: # 处理接口 HTTP 报错 if response.status_code != 200: error_text = response.text.replace('"', '\\"').replace('\n', ' ') error_chunk = { "id": conv_id, "object": "chat.completion.chunk", "model": "m365-copilot", "choices": [{"index": 0, "delta": {"content": f"\n[微软接口报错 {response.status_code}]: {error_text}\n"}, "finish_reason": "stop"}] } yield f"data: {json.dumps(error_chunk, ensure_ascii=False)}\n\n" yield "data: [DONE]\n\n" return # 处理正常返回的 SSE 流 for line in response.iter_lines(): if line: decoded_line = line.decode('utf-8') # 可以取消下面的注释以在终端查看原始流数据 (Debug 用) # print(f"DEBUG - 收到流数据: {decoded_line}") if decoded_line.startswith('data: '): raw_data = decoded_line[6:] if raw_data == "[DONE]": yield "data: [DONE]\n\n" break try: ms_chunk = json.loads(raw_data) # 拦截流内部报出的异常信息 (例如没有分配 Copilot 许可证) if "error" in ms_chunk: err_str = str(ms_chunk["error"]).replace('"', '\\"').replace('\n', ' ') error_chunk = { "id": conv_id, "object": "chat.completion.chunk", "model": "m365-copilot", "choices": [{"index": 0, "delta": {"content": f"\n[流内部报错]: {err_str}\n"}, "finish_reason": "stop"}] } yield f"data: {json.dumps(error_chunk, ensure_ascii=False)}\n\n" continue # 兼容微软不稳定的多层嵌套格式,提取正文内容 content = "" if "delta" in ms_chunk and isinstance(ms_chunk["delta"], dict): content = ms_chunk["delta"].get("text", "") or ms_chunk["delta"].get("content", "") if not content and "message" in ms_chunk and isinstance(ms_chunk["message"], dict): content = ms_chunk["message"].get("text", "") or ms_chunk["message"].get("content", "") if not content: content = ms_chunk.get("text", "") or ms_chunk.get("content", "") # 包装成标准的 OpenAI API 格式推给客户端 if content: openai_chunk = { "id": conv_id, "object": "chat.completion.chunk", "model": "m365-copilot", "choices": [{"index": 0, "delta": {"content": content}, "finish_reason": None}] } yield f"data: {json.dumps(openai_chunk, ensure_ascii=False)}\n\n" except json.JSONDecodeError: pass except Exception as e: error_chunk = { "id": conv_id, "object": "chat.completion.chunk", "model": "m365-copilot", "choices": [{"index": 0, "delta": {"content": f"\n[本地代理运行异常]: {str(e)}\n"}, "finish_reason": "stop"}] } yield f"data: {json.dumps(error_chunk, ensure_ascii=False)}\n\n" yield "data: [DONE]\n\n" # 如果客户端请求开启了 Stream 流式,则返回生成器 if is_stream: return StreamingResponse(generate_stream(), media_type="text/event-stream") else: return {"error": "请在你的 AI 客户端 (如 Cherry Studio) 中开启流式输出 (Stream)。此接口暂不支持非流式请求。"} # ========================================== # 4. 启动服务监听 # ========================================== if __name__ == "__main__": print("🚀 正在启动 M365 Copilot 本地转换代理服务...") get_user_token() # 默认监听本地的 12801 端口 uvicorn.run(app, host="127.0.0.1", port=12801, log_level="warning")

第一步:准备环境与配置

  1. 确保你的电脑上安装了 Python(推荐 3.8 以上版本)。
  2. 在命令行终端(终端/cmd/PowerShell)中安装依赖库: pip install fastapi uvicorn requests
  3. 打开 copilot_wrapper.py 文件,完成以下修改:
  • 代理设置:根据你本地的网络环境修改 PROXY_URL(如 http://127.0.0.1:7890)。如果你不需要代理,可以直接注释掉这段代码。
  • 凭证设置:填入你在 Microsoft Entra ID (Azure AD) 中注册的应用程序 TENANT_IDCLIENT_ID。(注意:该应用必须在“身份验证-高级设置”中开启**“允许公共客户端流 (Allow public client flows)”**)。
  • 具体的注册步骤和授权API权限自行咨询AI,记住务必选择应用程序权限
    image1802×1116 263 KB

第二步:启动代理服务与账号授权

  1. 在命令行中进入该脚本所在的文件夹,运行: python copilot_wrapper.py
  2. 终端会打印出一个微软的登录网址(如 https://login.microsoft.com/device)以及一串 字母+数字组成的设备代码
  3. 在浏览器中打开该网址,输入代码,并登录你拥有 M365 Copilot 权限的账号进行授权。
  4. 授权成功后,终端会提示 ✅ 登录成功!已获取 Copilot 访问权限。 并停留在运行状态(不要关闭这个黑框)。

第三步:在第三方客户端中调用

以 Cherry Studio 为例:

  1. 打开 Cherry Studio 的设置模型提供商 → 添加一个 自定义 OpenAI 渠道。
  2. API 地址 (Base URL):填写 http://127.0.0.1:12801
  3. API Key:随便填写(例如 sk-test1234,本脚本由于使用微软 Oauth,无需使用此密钥)。
  4. 添加模型:手动添加一个名为 m365-copilot 的模型。
  5. 极其关键:确保你开启了流式输出 (Stream) 功能。

配置完成后,就可以在聊天窗口选择 m365-copilot 模型,开始与你的企业级超级助理对话了。

网友解答:
--【壹】--:

感谢大佬!


--【贰】--:

之前薅的五年可以吗)
我记得可以用m365网页来着


--【叁】--:

我查了下这个路径是正规路径,但能不能用脚本调用就不知道了,如果你有正版订阅,还是走官方路径调用 API 稳妥


--【肆】--:

期待教程!!大佬还是强的!!!


--【伍】--:

大佬们试一下吧,成功了带我一个


--【陆】--:

马克了,有空试试


--【柒】--:

微软的gpt感觉很降智


--【捌】--:

佬用的是前面楼层说的那些订阅之一嘛
(是的话我也整整看


--【玖】--:

那期待一波大佬的api看看效果,网页是真的降智


--【拾】--:

佬,这个是正规的吗?会不会封号封ip之类的,在公司不知道敢用不


--【拾壹】--:

个人号应该是用不了的,edu号不知道行不行


--【拾贰】--:

image1189×552 67 KB
不是一个渠道,后台都上不去


--【拾叁】--:

前提是你的许可证合规(正规商业许可证),但是国内微软很多地方都有业务,如果你在公司,我劝你慎重。别公司被发函了。


--【拾肆】--:

其实是微软的提示词和特调导致的


--【拾伍】--:

感谢大佬


--【拾陆】--:

之前白嫖的E3不行对吧,要是之前薅的五年的可以的话能否有人踢我一下


--【拾柒】--:

我怕发出来渠道就褒姒了)
在想怎么给大活儿用


--【拾捌】--:

image1224×212 23.8 KB
解决了,我晚点看看怎么处理


--【拾玖】--:

逆向的话
是不是搞公益站会好控制一点

标签:人工智能