WWW.YOUINFO.SITE
标签聚合 起初

/tag/起初

LinuxDo 最新话题 · 2026-06-05 23:49:27+08:00 · tech

从11点一直更新到现在都没更新成功 起初就是因为更新一直没成功,然后就去找DS问了一下怎么检查我的NPM源 发现是官方的,就切换到国内的 然后就让他帮我测一下速度。一路走来非常离谱,越来越离谱,专业版也不是很聪明,总是抓不到核心。但总之最后的测试结果是,我自己的本地网络好像确实有问题,DNS给我坑了 Clash也是一直在统计,确实有下载流量 每秒0.1 MB 全程测试的速度基本稳定在0.01~0.02 MB每秒 下载0.3 MB的react包,需要27秒到31秒 3 个帖子 - 2 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-05 18:56:22+08:00 · tech

在近期更新了codex后,谷歌插件还有browser插件都显示无法使用了,如下图 起初以为是更新后出了什么bug,一顿折腾后,发现是vpn的问题,codex更新后好像对ip更加敏感了?我换了好几个地区的ip都显示无法使用,最终换了一个新加坡的节点后,功能才正常,并且插件商店也恢复了正常 这是我的机场太烂了,还是codex变严了 3 个帖子 - 2 位参与者 阅读完整话题

v2ex · 2026-06-03 14:15:33+08:00 · tech

背景: 23 年一月份的 chatGPT 老账号,一直是 plus 订阅,起初绑定的是接码平台的+62 的手机号,开通了谷歌的 Authenticator app MFA 昨天看到帖子说遇到短信二验,心虚自己账号绑定的手机号没法接码,于是又在 MFA 里开通了 Text message 没想到今天使用 codex 的时候,就碰到提示 Your access token could not be refreshed because your refresh token was already used. Please log out and sign in again. 网页版 chatGPT 的登录倒是没什么问题,就是 codex 登录的时候,到网页版来授权的时候,一直提示要往之前的+62 号码上发验证码。网上搜了一圈,都说已经无解了。都快放弃了 中午睡完午觉起来,心血来潮又试了一下,竟然正常登录了!!!失而复得好开心!赶紧来跟 V2EX 兄弟们汇报一下。 技巧很简单!!! [] 新开一个无痕模式的浏览器窗口] 然后 codex 里点登录,会在无痕模式下要求授权。这时就不会出现短信验证了,我是使用了 passkey 成功在无痕浏览器里面登录 chatGPT 成功,codex 也就授权成功了。

LinuxDo 最新话题 · 2026-05-27 15:22:17+08:00 · tech

在起初,社区氛围是知识内容,各种各样的大佬在 交流、互相学习、探讨学术、开源技术 等。 如今呢? 绝大部分内容是 「如何白嫖chatGpt?」 「如何获得低价claude?」 「哪个公益站开了」 「谁家的中转便宜」 并不是说怎么样,没有这些内容才好。 而是说,现在 绝大多数 都是在讨论这个问题。 我觉得讨论AI相关性的问题应该是: 「如何更好的利用上下文机制」 「如何能够更加规范AI的操作」 「某个SKILL的分享等」 而不是上面说的 低价token 相关的。 我觉得,花 大把时间去搞个百十块钱的token ,这并不划算,甚至因为搞到了会觉得很 自豪、骄傲 。 以上仅为 大衣哥 的一些 拙见 。 第一次更新: 刚看了下这个帖子,我知道了,不发这个话题了 我已经厌倦了每天打开L站都是如何如何白嫖某某模型了 运营反馈 [image] 如题,如何完全屏蔽这类帖子 37 个帖子 - 34 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-05-18 15:32:41+08:00 · tech

最近的见识让我重新见识这个世界,让我感觉到了富人的赚钱游戏,穷人辛苦赚钱生存 起初是,一位朋友他炒股了好几年了,他推荐给我一些股票,也跟着赚了点小钱,在我眼里他确实这方面很有天赋,能赚到钱,他有主业,然后把股市当副业赚钱,日子过得挺好 有段时间没有联系他了,最近联系他后聊到生活,然后聊到股市,他加入了一个群,一年要几个W才能入群,里面有很多大佬,群主会不定时推荐一些股票,从几十到几百的股票,从创业板到科创板,里面的大佬投资资金令人咂舌,到目前为止他的看推荐的那些股票,就没有一个不涨的,都涨,而且还有很多是短期的,他现在一个月就能赚个几个W 我现在也跟着他买股票,我不了解股市,所以我是小投资跟买,他推荐了看个文件,在此分享给各位佬 提取码: 528e –来自百度网盘超级会员v5的分享 感慨:这个现象让我深深觉得认知和眼界的重要性,命运和眼界比辛苦劳动赚钱容易得多 他跟我说:他觉得自己是误闯天家,看到了资本赚钱有多么的容易 照现在的就业大环境,我感觉无话可说,普通人有份工作都难,但是有资本有资源的人,可以在股市或者其他地方赚得风风火火,我不否认大佬的资源和认知都是日积月累的,也是他们或者家族的努力,就感觉社会两极分化很无奈,哈哈哈?! 以上只是感慨 2 个帖子 - 1 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-05-12 14:31:36+08:00 · tech

最近发现我之前写的两个帖子一直在我自己的 新 下面挂着,挂了好几天了,起初并没有在意,不过过了今天还在这里,感到很奇怪?是bug吗?还是个例? 环境:最新版chrome浏览器、插件只用了沉浸式翻译。 更新: 查看过这两篇帖子之后就没有挂在这了。不过还是很奇怪怎么突然会冒出来,因为他们一个已经归档了,另一个的活跃是3月份的事情了,有点奇怪。 2 个帖子 - 2 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-05-11 00:10:57+08:00 · tech

起初是自己在使用 Claude 的时候,发现 Claude 在输出问题的时候,特别是面对教材上知识点讲解的时候会通过内嵌 html 来进行展示(当时只是觉得很牛逼,没有想明白居然是内嵌 html 来显示的) 遂在 CS 之中对于 deepseek 展开一系列调教,最后发现居然还是真的对 Claude 有一些相似之处欧耶! 感谢站内佬们的分享 6 个帖子 - 6 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-05-09 22:15:31+08:00 · tech

起初是觉得sub的添加模型太不方便了,不能像newapi那样获取上游模型列表,默认填充的又一堆不能用的模型,手动一个个勾选太麻烦了。然后又不想二开sub(更新太频繁了,哪一天说不定要处理冲突,想想就麻烦)。于是想到了油猴脚本: 大概思路是,对于“添加账号”,就依赖页面上输入的apikey+apiurl调用/v1/models接口获取模型列表;对于“编辑账号”,就从请求返回的数据中获取apikey+apiurl调用/v1/models接口。 安全性:完全没问题,都是你浏览器直接向你的上游渠道发起的请求,不经过任何中间商。(把代码丢给ai分析下安全性风险即可) 效果如图: 然后是代码: // ==UserScript== // @name sub2api API Key 模型白名单自动填充 // @namespace https://github.com/Wei-Shaw/sub2api // @version 0.1.0 // @description 在 sub2api 添加/编辑 API Key 账号时,从上游 /v1/models 获取模型并替换模型白名单 // @match *://*/admin/accounts* // @grant GM_xmlhttpRequest // @connect * // @run-at document-idle // ==/UserScript== (function () { 'use strict'; const API_BASE = '/api/v1'; const PANEL_ATTR = 'data-s2a-model-loader'; const BUTTON_TEXT = '从 /v1/models 获取并替换白名单'; const HELP_TEXT = '适用于 API Key 接入账号;编辑账号时会从账号详情接口读取已保存的 Key。'; let lastEditId = null; let busy = false; let scanTimer = null; const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); const qsa = (root, selector) => Array.from(root.querySelectorAll(selector)); const textOf = (node) => (node?.textContent || '').replace(/\s+/g, ' ').trim(); function isVisible(el) { if (!el || !(el instanceof Element)) return false; const rect = el.getBoundingClientRect(); const style = window.getComputedStyle(el); return rect.width > 0 && rect.height > 0 && style.visibility !== 'hidden' && style.display !== 'none'; } function isBefore(a, b) { return Boolean(a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING); } function activeDialog() { const dialogs = qsa(document, '[role="dialog"][aria-modal="true"], .modal-overlay'); return dialogs.filter(isVisible).at(-1) || null; } function dialogTitle(dialog) { return textOf(dialog.querySelector('.modal-title, h3, [id^="modal-title"]')); } function isEditDialog(dialog) { return Boolean(dialog.querySelector('#edit-account-form')) || /编辑|Edit/i.test(dialogTitle(dialog)); } function accountNameFromDialog(dialog) { const input = dialog.querySelector('input[data-tour="edit-account-form-name"], input[data-tour="account-form-name"]'); return (input?.value || '').trim(); } function findButtonByText(root, patterns) { return qsa(root, 'button').find((button) => { if (!isVisible(button)) return false; const text = textOf(button); return patterns.some((pattern) => pattern.test(text)); }) || null; } function whitelistButton(dialog) { return findButtonByText(dialog, [/^模型白名单$/i, /^Model Whitelist$/i, /^Model whitelist$/i]); } function customModelInput(dialog) { const inputs = qsa(dialog, 'input').filter(isVisible); return inputs.find((input) => /输入自定义模型名称|Enter custom model name/i.test(input.placeholder || '')) || null; } function whitelistRoot(dialog) { const input = customModelInput(dialog); return input?.closest('.mb-3')?.parentElement || dialog; } function findApiKeyContext(dialog) { const whitelist = whitelistButton(dialog); if (!whitelist) return null; const inputsBeforeWhitelist = qsa(dialog, 'input') .filter((input) => isVisible(input) && isBefore(input, whitelist)); const apiKeyInput = inputsBeforeWhitelist .filter((input) => (input.getAttribute('type') || '').toLowerCase() === 'password') .at(-1); if (!apiKeyInput) return null; const apiKeyIndex = inputsBeforeWhitelist.indexOf(apiKeyInput); const baseUrlInput = inputsBeforeWhitelist .slice(0, apiKeyIndex) .reverse() .find((input) => { const type = (input.getAttribute('type') || 'text').toLowerCase(); const value = `${input.value || ''} ${input.placeholder || ''}`; return ['text', 'url', 'search', ''].includes(type) && /https?:\/\//i.test(value); }); if (!baseUrlInput) return null; return { baseUrlInput, apiKeyInput, whitelist }; } function statusEl(panel) { return panel.querySelector('[data-s2a-status]'); } function setStatus(panel, message, tone = 'muted') { const el = statusEl(panel); if (!el) return; el.textContent = message; const colors = { muted: '#6b7280', info: '#2563eb', success: '#059669', error: '#dc2626' }; el.style.color = colors[tone] || colors.muted; } function showToast(message, tone = 'info') { const old = document.querySelector('[data-s2a-toast]'); old?.remove(); const toast = document.createElement('div'); toast.setAttribute('data-s2a-toast', '1'); toast.textContent = message; const bg = tone === 'error' ? '#dc2626' : tone === 'success' ? '#059669' : '#2563eb'; Object.assign(toast.style, { position: 'fixed', right: '18px', top: '18px', zIndex: '999999', maxWidth: '420px', padding: '10px 14px', borderRadius: '8px', background: bg, color: '#fff', fontSize: '14px', lineHeight: '1.45', boxShadow: '0 10px 30px rgba(0,0,0,.22)' }); document.body.appendChild(toast); window.setTimeout(() => toast.remove(), 4500); } function injectPanel(dialog, ctx) { const existing = dialog.querySelector(`[${PANEL_ATTR}]`); if (existing) { if (existing.__s2aApiKeyInput === ctx.apiKeyInput) return; existing.remove(); } const panel = document.createElement('div'); panel.setAttribute(PANEL_ATTR, '1'); panel.__s2aApiKeyInput = ctx.apiKeyInput; Object.assign(panel.style, { marginTop: '10px', padding: '10px', border: '1px solid rgba(37, 99, 235, .28)', borderRadius: '8px', background: 'rgba(37, 99, 235, .06)' }); const row = document.createElement('div'); Object.assign(row.style, { display: 'flex', gap: '8px', alignItems: 'center', flexWrap: 'wrap' }); const button = document.createElement('button'); button.type = 'button'; button.textContent = BUTTON_TEXT; Object.assign(button.style, { border: '0', borderRadius: '8px', padding: '8px 12px', cursor: 'pointer', background: '#2563eb', color: '#fff', fontSize: '13px', fontWeight: '600' }); const status = document.createElement('span'); status.setAttribute('data-s2a-status', '1'); status.textContent = HELP_TEXT; Object.assign(status.style, { color: '#6b7280', fontSize: '12px' }); row.append(button, status); panel.append(row); button.addEventListener('click', () => runModelImport(dialog, panel)); const apiKeyField = ctx.apiKeyInput.closest('div') || ctx.apiKeyInput.parentElement; apiKeyField?.insertAdjacentElement('afterend', panel); } function scheduleScan() { window.clearTimeout(scanTimer); scanTimer = window.setTimeout(scan, 80); } function scan() { if (!location.pathname.startsWith('/admin/accounts')) return; const dialog = activeDialog(); if (!dialog) return; const ctx = findApiKeyContext(dialog); const panel = dialog.querySelector(`[${PANEL_ATTR}]`); if (!ctx) { panel?.remove(); return; } injectPanel(dialog, ctx); } document.addEventListener('click', (event) => { const target = event.target instanceof Element ? event.target : null; const button = target?.closest('button'); if (button && /编辑|Edit/i.test(textOf(button))) { const row = button.closest('tr[data-row-id]'); const id = Number(row?.getAttribute('data-row-id')); lastEditId = Number.isFinite(id) && id > 0 ? id : null; } scheduleScan(); }, true); new MutationObserver(scheduleScan).observe(document.body, { childList: true, subtree: true }); window.setInterval(scan, 1200); scan(); function normalizeModelsUrl(baseUrl) { const clean = String(baseUrl || '').trim().replace(/\/+$/, ''); if (!clean) throw new Error('请先填写 Base URL。'); if (/\/v1\/models$/i.test(clean)) return clean; if (/\/v1$/i.test(clean)) return `${clean}/models`; return `${clean}/v1/models`; } function unwrapApiEnvelope(payload) { if (payload && typeof payload === 'object' && 'code' in payload && 'data' in payload) { if (Number(payload.code) !== 0) { throw new Error(payload.message || '后台接口返回错误。'); } return payload.data; } return payload; } async function adminGet(path) { const headers = { Accept: 'application/json' }; const token = localStorage.getItem('auth_token'); if (token) headers.Authorization = `Bearer ${token}`; const response = await fetch(path, { headers, credentials: 'include' }); const bodyText = await response.text(); let payload = null; try { payload = bodyText ? JSON.parse(bodyText) : null; } catch { payload = null; } if (!response.ok) { const message = payload?.message || payload?.detail || bodyText.slice(0, 180) || response.statusText; throw new Error(`后台接口请求失败(HTTP ${response.status}):${message}`); } return unwrapApiEnvelope(payload); } async function resolveEditAccount(dialog) { if (lastEditId) { try { const account = await adminGet(`${API_BASE}/admin/accounts/${lastEditId}`); if (account?.type === 'apikey') return account; } catch { // 继续走名称搜索兜底。 } } const name = accountNameFromDialog(dialog); if (!name) { throw new Error('无法识别当前编辑账号,请从账号列表点击“编辑”打开弹窗后重试。'); } const list = await adminGet(`${API_BASE}/admin/accounts?page=1&page_size=50&search=${encodeURIComponent(name)}`); const items = Array.isArray(list?.items) ? list.items : Array.isArray(list) ? list : []; const matches = items.filter((account) => { return account?.type === 'apikey' && String(account?.name || '').trim() === name; }); if (matches.length !== 1) { throw new Error(`无法通过账号名唯一定位账号(匹配到 ${matches.length} 个),请从账号列表点击“编辑”后立即重试。`); } return await adminGet(`${API_BASE}/admin/accounts/${matches[0].id}`); } async function getApiKey(dialog, ctx) { const typed = (ctx.apiKeyInput.value || '').trim(); if (typed) return typed; if (!isEditDialog(dialog)) { throw new Error('新增账号时请先填写 API Key。'); } const account = await resolveEditAccount(dialog); if (account?.type !== 'apikey') { throw new Error('当前账号不是 API Key 接入账号。'); } const saved = String(account?.credentials?.api_key || '').trim(); if (!saved) { throw new Error('账号详情里没有可用的已保存 API Key,请在表单里重新填写 API Key。'); } return saved; } function requestUpstreamModels(url, apiKey) { if (typeof GM_xmlhttpRequest !== 'function') { throw new Error('当前油猴环境不支持 GM_xmlhttpRequest,请确认脚本授权是否生效。'); } return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: 'GET', url, timeout: 30000, headers: { Accept: 'application/json', Authorization: `Bearer ${apiKey}`, 'x-api-key': apiKey, 'x-goog-api-key': apiKey, 'anthropic-version': '2023-06-01' }, onload: (response) => { const text = response.responseText || ''; if (response.status < 200 || response.status >= 300) { reject(new Error(`上游 /v1/models 请求失败(HTTP ${response.status}):${text.slice(0, 240) || response.statusText}`)); return; } try { resolve(text ? JSON.parse(text) : null); } catch { reject(new Error('上游 /v1/models 返回的不是合法 JSON。')); } }, onerror: () => reject(new Error('上游 /v1/models 网络请求失败。')), ontimeout: () => reject(new Error('上游 /v1/models 请求超时。')) }); }); } function normalizeModelId(value) { let model = String(value || '').trim(); if (!model) return ''; const marker = '/models/'; const markerIndex = model.lastIndexOf(marker); if (markerIndex >= 0) model = model.slice(markerIndex + marker.length); model = model.replace(/^models\//i, ''); if (/:[A-Za-z]+/.test(model)) model = model.split(':')[0]; return model.trim(); } function looksLikeModelKey(key) { const value = normalizeModelId(key); if (!value || /^(data|items|models|object|has_more|total)$/i.test(value)) return false; return /^[A-Za-z0-9][A-Za-z0-9._:@/+-]*$/.test(value); } function extractModelIds(payload) { const result = []; const seen = new Set(); function add(value) { const model = normalizeModelId(value); if (!model || seen.has(model)) return; seen.add(model); result.push(model); } function visit(value, hint = '') { if (value == null) return; if (typeof value === 'string') { add(value); return; } if (Array.isArray(value)) { value.forEach((item) => visit(item, hint)); return; } if (typeof value !== 'object') return; const direct = value.id || value.name || value.model || value.model_id || value.value || value.slug; if (typeof direct === 'string') add(direct); ['data', 'models', 'items'].forEach((key) => { if (value[key] !== undefined) visit(value[key], key); }); if (/^(models|items)$/i.test(hint)) { Object.entries(value).forEach(([key, item]) => { const before = result.length; visit(item, key); if (result.length === before && looksLikeModelKey(key)) add(key); }); } } visit(payload, 'root'); return result; } async function waitFor(fn, timeoutMs = 3000) { const end = Date.now() + timeoutMs; while (Date.now() < end) { const value = fn(); if (value) return value; await sleep(50); } return null; } function setNativeValue(input, value) { const setter = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value')?.set; setter.call(input, value); input.dispatchEvent(new Event('input', { bubbles: true })); input.dispatchEvent(new Event('change', { bubbles: true })); } function addModelButton(input, dialog) { const row = input.closest('.flex') || input.parentElement; const rowButton = row ? findButtonByText(row, [/^(填入|Add)$/i]) : null; if (rowButton) return rowButton; return findButtonByText(whitelistRoot(dialog), [/^(填入|Add)$/i]); } async function clearWhitelist(dialog) { const root = whitelistRoot(dialog); const clearButton = findButtonByText(root, [/清除所有模型/i, /清空模型/i, /^Clear all models$/i]); if (clearButton) { clearButton.click(); await sleep(120); return; } const removeButtons = qsa(root, 'button').filter((button) => { return isVisible(button) && !textOf(button) && button.closest('span') && button.querySelector('svg'); }); removeButtons.forEach((button) => button.click()); await sleep(120); } async function replaceWhitelist(dialog, ids, panel) { const whitelist = whitelistButton(dialog); if (!whitelist) throw new Error('没有找到“模型白名单”按钮。'); whitelist.click(); const input = await waitFor(() => customModelInput(dialog)); if (!input) throw new Error('没有找到自定义模型输入框,请确认当前处于模型白名单模式。'); await clearWhitelist(dialog); for (let i = 0; i < ids.length; i += 1) { const freshInput = customModelInput(dialog) || input; const addButton = addModelButton(freshInput, dialog); if (!addButton) throw new Error('没有找到模型“填入”按钮。'); setNativeValue(freshInput, ids[i]); addButton.click(); if ((i + 1) % 20 === 0 || i === ids.length - 1) { setStatus(panel, `正在填充模型:${i + 1}/${ids.length}`, 'info'); await sleep(30); } else { await sleep(8); } } } async function runModelImport(dialog, panel) { if (busy) return; busy = true; const ctx = findApiKeyContext(dialog); const button = panel.querySelector('button'); const oldText = button?.textContent || BUTTON_TEXT; if (button) { button.disabled = true; button.textContent = '正在获取模型...'; button.style.opacity = '0.72'; button.style.cursor = 'wait'; } try { if (!ctx) throw new Error('当前弹窗不是 API Key 接入账号,或页面结构未找到 Base URL/API Key/模型白名单。'); const baseUrl = (ctx.baseUrlInput.value || ctx.baseUrlInput.placeholder || '').trim(); const modelsUrl = normalizeModelsUrl(baseUrl); const apiKey = await getApiKey(dialog, ctx); setStatus(panel, `正在请求:${modelsUrl}`, 'info'); const payload = await requestUpstreamModels(modelsUrl, apiKey); const ids = extractModelIds(payload); if (ids.length === 0) { throw new Error('上游返回中没有识别到模型 ID。'); } setStatus(panel, `已获取 ${ids.length} 个模型,正在替换白名单...`, 'info'); await replaceWhitelist(dialog, ids, panel); const message = `已从 /v1/models 获取并替换 ${ids.length} 个模型。请确认后保存账号。`; setStatus(panel, message, 'success'); showToast(message, 'success'); } catch (error) { const message = error instanceof Error ? error.message : String(error); setStatus(panel, message, 'error'); showToast(message, 'error'); } finally { if (button) { button.disabled = false; button.textContent = oldText; button.style.opacity = '1'; button.style.cursor = 'pointer'; } busy = false; } } })(); 1 个帖子 - 1 位参与者 阅读完整话题

v2ex.com · 2026-05-01 19:57:55+08:00 · tech

我 30 岁出头,4 月 22 日感觉很不舒服,起初以为是没睡好,23 号去医院检查,被确诊。具体症状:右侧面瘫,抬额右侧无额纹,皱眉左右极不对称,右眼睑闭合不完全,右眼吹风刺激性强,右侧嘴角漏气,无法鼓气,伴有后脑勺头痛,无耳痛。核磁共振报告显示颅内未发现异常。致病原因至今不明。 24 号中午去办理住院输液,输了两次后,25 号办理出院,改为服用药物。医生给我开的口服药:碳酸钙 D3 片,一天一次,一次一片;醋酸泼尼松片,一天一次,一次 8 粒,共 40mg ;复合维生素 B 片,一天三次,每次两粒;甲钴胺片,一天三次,一次一粒。阿昔洛韦片一日三次,一次两粒,共吃 7 天。泼尼松片每五天减一片,直到减完为止停止所有用药(共计四十天)。 截至今天( 5 月 1 日),我的右眼睑闭合还是不完全,但只有微小的缝了,可以往右侧咧嘴,脸颊肌肉有明显的变化,抬额时右侧额头也有了一道额纹,总之就是已经恢复了将近一半。 昨天我首先去了中医院老同学(曾在那个医院任职)推荐的中医那去,医生说:针灸两周,每周四次,扎一次几分钟搞定,建议针药并用,即要吃中药。他说开住院的去针灸要便宜些,门诊扎贵一点,并且中药也贵,还建议我泼尼松最多吃两周,他质疑我一开始的剂量即每天 8 片共 40mg 太少了,应该先急用药,药程两周即可。我问他针灸是好得更快还是好得更多,他答复好得更快。 后来我去了人民医院的康复科门诊,医生也说要针灸,半个月,每天一次,每次一到两个小时,也可能扎几天就好了就不扎了,但跟我说现在泼尼松吃得太多了,建议我减到 10mg 或者 20mg 。 我身边的人无论医生还是曾经的病患都说要针灸,我现在非常纠结,好像每个医生的方案都有些差异,到底该相信谁。问了一大圈 AI 都说针灸非必需。用药不到一周恢复到这个水平可以不用针灸吗?

v2ex.com · 2026-05-01 19:57:55+08:00 · tech

我 30 岁出头,4 月 22 日感觉很不舒服,起初以为是没睡好,23 号去医院检查,被确诊。具体症状:右侧面瘫,抬额右侧无额纹,皱眉左右极不对称,右眼睑闭合不完全,右眼吹风刺激性强,右侧嘴角漏气,无法鼓气,伴有后脑勺头痛,无耳痛。核磁共振报告显示颅内未发现异常。致病原因至今不明。 24 号中午去办理住院输液,输了两次后,25 号办理出院,改为服用药物。医生给我开的口服药:碳酸钙 D3 片,一天一次,一次一片;醋酸泼尼松片,一天一次,一次 8 粒,共 40mg ;复合维生素 B 片,一天三次,每次两粒;甲钴胺片,一天三次,一次一粒。阿昔洛韦片一日三次,一次两粒,共吃 7 天。泼尼松片每五天减一片,直到减完为止停止所有用药(共计四十天)。 截至今天( 5 月 1 日),我的右眼睑闭合还是不完全,但只有微小的缝了,可以往右侧咧嘴,脸颊肌肉有明显的变化,抬额时右侧额头也有了一道额纹,总之就是已经恢复了将近一半。 昨天我首先去了中医院老同学(曾在那个医院任职)推荐的中医那去,医生说:针灸两周,每周四次,扎一次几分钟搞定,建议针药并用,即要吃中药。他说开住院的去针灸要便宜些,门诊扎贵一点,并且中药也贵,还建议我泼尼松最多吃两周,他质疑我一开始的剂量即每天 8 片共 40mg 太少了,应该先急用药,药程两周即可。我问他针灸是好得更快还是好得更多,他答复好得更快。 后来我去了人民医院的康复科门诊,医生也说要针灸,半个月,每天一次,每次一到两个小时,也可能扎几天就好了就不扎了,但跟我说现在泼尼松吃得太多了,建议我减到 10mg 或者 20mg 。 我身边的人无论医生还是曾经的病患都说要针灸,我现在非常纠结,好像每个医生的方案都有些差异,到底该相信谁。问了一大圈 AI 都说针灸非必需。用药不到一周恢复到这个水平可以不用针灸吗?

v2ex.com · 2026-05-01 19:57:55+08:00 · tech

我 30 岁出头,4 月 22 日感觉很不舒服,起初以为是没睡好,23 号去医院检查,被确诊。具体症状:右侧面瘫,抬额右侧无额纹,皱眉左右极不对称,右眼睑闭合不完全,右眼吹风刺激性强,右侧嘴角漏气,无法鼓气,伴有后脑勺头痛,无耳痛。核磁共振报告显示颅内未发现异常。致病原因至今不明。 24 号中午去办理住院输液,输了两次后,25 号办理出院,改为服用药物。医生给我开的口服药:碳酸钙 D3 片,一天一次,一次一片;醋酸泼尼松片,一天一次,一次 8 粒,共 40mg ;复合维生素 B 片,一天三次,每次两粒;甲钴胺片,一天三次,一次一粒。阿昔洛韦片一日三次,一次两粒,共吃 7 天。泼尼松片每五天减一片,直到减完为止停止所有用药(共计四十天)。 截至今天( 5 月 1 日),我的右眼睑闭合还是不完全,但只有微小的缝了,可以往右侧咧嘴,脸颊肌肉有明显的变化,抬额时右侧额头也有了一道额纹,总之就是已经恢复了将近一半。 昨天我首先去了中医院老同学(曾在那个医院任职)推荐的中医那去,医生说:针灸两周,每周四次,扎一次几分钟搞定,建议针药并用,即要吃中药。他说开住院的去针灸要便宜些,门诊扎贵一点,并且中药也贵,还建议我泼尼松最多吃两周,他质疑我一开始的剂量即每天 8 片共 40mg 太少了,应该先急用药,药程两周即可。我问他针灸是好得更快还是好得更多,他答复好得更快。 后来我去了人民医院的康复科门诊,医生也说要针灸,半个月,每天一次,每次一到两个小时,也可能扎几天就好了就不扎了,但跟我说现在泼尼松吃得太多了,建议我减到 10mg 或者 20mg 。 我身边的人无论医生还是曾经的病患都说要针灸,我现在非常纠结,好像每个医生的方案都有些差异,到底该相信谁。问了一大圈 AI 都说针灸非必需。用药不到一周恢复到这个水平可以不用针灸吗?

v2ex.com · 2026-05-01 19:57:55+08:00 · tech

我 30 岁出头,4 月 22 日感觉很不舒服,起初以为是没睡好,23 号去医院检查,被确诊。具体症状:右侧面瘫,抬额右侧无额纹,皱眉左右极不对称,右眼睑闭合不完全,右眼吹风刺激性强,右侧嘴角漏气,无法鼓气,伴有后脑勺头痛,无耳痛。核磁共振报告显示颅内未发现异常。致病原因至今不明。 24 号中午去办理住院输液,输了两次后,25 号办理出院,改为服用药物。医生给我开的口服药:碳酸钙 D3 片,一天一次,一次一片;醋酸泼尼松片,一天一次,一次 8 粒,共 40mg ;复合维生素 B 片,一天三次,每次两粒;甲钴胺片,一天三次,一次一粒。阿昔洛韦片一日三次,一次两粒,共吃 7 天。泼尼松片每五天减一片,直到减完为止停止所有用药(共计四十天)。 截至今天( 5 月 1 日),我的右眼睑闭合还是不完全,但只有微小的缝了,可以往右侧咧嘴,脸颊肌肉有明显的变化,抬额时右侧额头也有了一道额纹,总之就是已经恢复了将近一半。 昨天我首先去了中医院老同学(曾在那个医院任职)推荐的中医那去,医生说:针灸两周,每周四次,扎一次几分钟搞定,建议针药并用,即要吃中药。他说开住院的去针灸要便宜些,门诊扎贵一点,并且中药也贵,还建议我泼尼松最多吃两周,他质疑我一开始的剂量即每天 8 片共 40mg 太少了,应该先急用药,药程两周即可。我问他针灸是好得更快还是好得更多,他答复好得更快。 后来我去了人民医院的康复科门诊,医生也说要针灸,半个月,每天一次,每次一到两个小时,也可能扎几天就好了就不扎了,但跟我说现在泼尼松吃得太多了,建议我减到 10mg 或者 20mg 。 我身边的人无论医生还是曾经的病患都说要针灸,我现在非常纠结,好像每个医生的方案都有些差异,到底该相信谁。问了一大圈 AI 都说针灸非必需。用药不到一周恢复到这个水平可以不用针灸吗?

v2ex.com · 2026-05-01 19:50:18+08:00 · tech

我 30 岁出头,4 月 22 日感觉很不舒服,起初以为是没睡好,23 号去医院检查,被确诊。具体症状:右侧面瘫,抬额右侧无额纹,皱眉左右极不对称,右眼睑闭合不完全,右眼吹风刺激性强,右侧嘴角漏气,无法鼓气,伴有后脑勺头痛,无耳痛。核磁共振报告显示颅内未发现异常。致病原因至今不明。 24 号中午去办理住院输液,输了两次后,25 号办理出院,改为服用药物。医生给我开的口服药:碳酸钙 D3 片,一天一次,一次一片;醋酸泼尼松片,一天一次,一次 8 粒,共 40mg ;复合维生素 B 片,一天三次,每次两粒;甲钴胺片,一天三次,一次一粒。阿昔洛韦片一日三次,一次两粒,共吃 7 天。泼尼松片每五天减一片,直到减完为止停止所有用药(共计四十天)。 截至今天( 5 月 1 日),我的右眼睑闭合还是不完全,但只有微小的缝了,可以往右侧咧嘴,脸颊肌肉有明显的变化,抬额时右侧额头也有了一道额纹,总之就是已经恢复了将近一半。 昨天我首先去了中医院老同学(曾在那个医院任职)推荐的中医那去,医生说:针灸两周,每周四次,扎一次几分钟搞定,建议针药并用,即要吃中药。他说开住院的去针灸要便宜些,门诊扎贵一点,并且中药也贵,还建议我泼尼松最多吃两周,他质疑我一开始的剂量即每天 8 片共 40mg 太少了,应该先急用药,药程两周即可。我问他针灸是好得更快还是好得更多,他答复好得更快。 后来我去了人民医院的康复科门诊,医生也说要针灸,半个月,每天一次,每次一到两个小时,也可能扎几天就好了就不扎了,但跟我说现在泼尼松吃得太多了,建议我减到 10mg 或者 20mg 。 我身边的人无论医生还是曾经的病患都说要针灸,我现在非常纠结,好像每个医生的方案都有些差异,到底该相信谁。问了一大圈 AI 都说针灸非必需。用药不到一周恢复到这个水平可以不用针灸吗?

v2ex.com · 2026-05-01 18:52:52+08:00 · tech

我 30 岁出头,4 月 22 日感觉很不舒服,起初以为是没睡好,23 号去医院检查,被确诊。具体症状:右侧面瘫,抬额右侧无额纹,皱眉左右极不对称,右眼睑闭合不完全,右眼吹风刺激性强,右侧嘴角漏气,无法鼓气,伴有后脑勺头痛,无耳痛。核磁共振报告显示颅内未发现异常。致病原因至今不明。 24 号中午去办理住院输液,输了两次后,25 号办理出院,改为服用药物。医生给我开的口服药:碳酸钙 D3 片,一天一次,一次一片;醋酸泼尼松片,一天一次,一次 8 粒,共 40mg ;复合维生素 B 片,一天三次,每次两粒;甲钴胺片,一天三次,一次一粒。阿昔洛韦片一日三次,一次两粒,共吃 7 天。泼尼松片每五天减一片,直到减完为止停止所有用药(共计四十天)。 截至今天( 5 月 1 日),我的右眼睑闭合还是不完全,但只有微小的缝了,可以往右侧咧嘴,脸颊肌肉有明显的变化,抬额时右侧额头也有了一道额纹,总之就是已经恢复了将近一半。 昨天我首先去了中医院老同学(曾在那个医院任职)推荐的中医那去,医生说:针灸两周,每周四次,扎一次几分钟搞定,建议针药并用,即要吃中药。他说开住院的去针灸要便宜些,门诊扎贵一点,并且中药也贵,还建议我泼尼松最多吃两周,他质疑我一开始的剂量即每天 8 片共 40mg 太少了,应该先急用药,药程两周即可。我问他针灸是好得更快还是好得更多,他答复好得更快。 后来我去了人民医院的康复科门诊,医生也说要针灸,半个月,每天一次,每次一到两个小时,也可能扎几天就好了就不扎了,但跟我说现在泼尼松吃得太多了,建议我减到 10mg 或者 20mg 。 我身边的人无论医生还是曾经的病患都说要针灸,我现在非常纠结,好像每个医生的方案都有些差异,到底该相信谁。问了一大圈 AI 都说针灸非必需。用药不到一周恢复到这个水平可以不用针灸吗?

v2ex.com · 2026-05-01 18:52:52+08:00 · tech

我 30 岁出头,4 月 22 日感觉很不舒服,起初以为是没睡好,23 号去医院检查,被确诊。具体症状:右侧面瘫,抬额右侧无额纹,皱眉左右极不对称,右眼睑闭合不完全,右眼吹风刺激性强,右侧嘴角漏气,无法鼓气,伴有后脑勺头痛,无耳痛。核磁共振报告显示颅内未发现异常。致病原因至今不明。 24 号中午去办理住院输液,输了两次后,25 号办理出院,改为服用药物。医生给我开的口服药:碳酸钙 D3 片,一天一次,一次一片;醋酸泼尼松片,一天一次,一次 8 粒,共 40mg ;复合维生素 B 片,一天三次,每次两粒;甲钴胺片,一天三次,一次一粒。阿昔洛韦片一日三次,一次两粒,共吃 7 天。泼尼松片每五天减一片,直到减完为止停止所有用药(共计四十天)。 截至今天( 5 月 1 日),我的右眼睑闭合还是不完全,但只有微小的缝了,可以往右侧咧嘴,脸颊肌肉有明显的变化,抬额时右侧额头也有了一道额纹,总之就是已经恢复了将近一半。 昨天我首先去了中医院老同学(曾在那个医院任职)推荐的中医那去,医生说:针灸两周,每周四次,扎一次几分钟搞定,建议针药并用,即要吃中药。他说开住院的去针灸要便宜些,门诊扎贵一点,并且中药也贵,还建议我泼尼松最多吃两周,他质疑我一开始的剂量即每天 8 片共 40mg 太少了,应该先急用药,药程两周即可。我问他针灸是好得更快还是好得更多,他答复好得更快。 后来我去了人民医院的康复科门诊,医生也说要针灸,半个月,每天一次,每次一到两个小时,也可能扎几天就好了就不扎了,但跟我说现在泼尼松吃得太多了,建议我减到 10mg 或者 20mg 。 我身边的人无论医生还是曾经的病患都说要针灸,我现在非常纠结,好像每个医生的方案都有些差异,到底该相信谁。问了一大圈 AI 都说针灸非必需。用药不到一周恢复到这个水平可以不用针灸吗?