{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# LLM" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "### LLM\n", "from langchain_community.chat_models import ChatOllama\n", "# local_llm = \"llama3.1:8b-instruct-fp16\"\n", "local_llm = \"llama3-groq-tool-use:latest\"\n", "\n", "llm_json = ChatOllama(model=local_llm, format=\"json\", temperature=0)\n", "llm = ChatOllama(model=local_llm, temperature=0)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# RAG" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Retriever" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/anaconda3/envs/llama3/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", " from .autonotebook import tqdm as notebook_tqdm\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "FAISS index loaded from faiss_index.bin\n", "Metadata loaded from faiss_metadata.pkl\n", "Using existing FAISS index and metadata.\n", "Creating FAISS retriever...\n" ] } ], "source": [ "from faiss_index import create_faiss_retriever, faiss_query\n", "retriever = create_faiss_retriever()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generation" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from langchain.prompts import ChatPromptTemplate\n", "from langchain_core.output_parsers import StrOutputParser\n", "def faiss_query(question: str, docs, llm, multi_query: bool = False) -> str:\n", " context = docs\n", " # try:\n", " # context = \"\\n\".join(doc.page_content for doc in docs)\n", " # except:\n", " # context = \"\\n\".join(doc for doc in docs)\n", " \n", " system_prompt: str = \"你是一個來自台灣的AI助理,樂於以台灣人的立場幫助使用者,會用繁體中文回答問題。\"\n", " template = \"\"\"\n", " <|begin_of_text|>\n", " \n", " <|start_header_id|>system<|end_header_id|>\n", " 你是一個來自台灣的ESG的AI助理,請用繁體中文回答問題 \\n\n", " You should not mention anything about \"根據提供的文件內容\" or other similar terms.\n", " Use five sentences maximum and keep the answer concise.\n", " 如果你不知道答案請回答:\"很抱歉,目前我無法回答您的問題,請將您的詢問發送至 test@systex.com 以便獲得更進一步的幫助,謝謝。\"\n", " 勿回答無關資訊\n", " <|eot_id|>\n", " \n", " <|start_header_id|>user<|end_header_id|>\n", " Answer the following question based on this context:\n", "\n", " {context}\n", "\n", " Question: {question}\n", " 用繁體中文回答問題\n", " <|eot_id|>\n", " \n", " <|start_header_id|>assistant<|end_header_id|>\n", " \"\"\"\n", " prompt = ChatPromptTemplate.from_template(\n", " system_prompt + \"\\n\\n\" +\n", " template\n", " )\n", " \n", " # prompt = ChatPromptTemplate.from_template(\n", " # system_prompt + \"\\n\\n\" +\n", " # \"Answer the following question based on this context:\\n\\n\"\n", " # \"{context}\\n\\n\"\n", " # \"Question: {question}\\n\"\n", " # \"Answer in the same language as the question. If you don't know the answer, \"\n", " # \"say 'I'm sorry, I don't have enough information to answer that question.'\"\n", " # )\n", "\n", " \n", " # chain = prompt | taide_llm | StrOutputParser()\n", " chain = prompt | llm | StrOutputParser()\n", " return chain.invoke({\"context\": context, \"question\": question})" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# docs = retriever.get_relevant_documents(question, k=10)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Document(metadata={'url': 'https://e-info.org.tw/node/230061', 'date': '2021-03-17', 'title': '碳費每噸收100元 學者立委齊批太寬鬆 難阻排碳大戶', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,碳中和,碳定價,綠色和平,環保署,減碳,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='碳費每噸收100元 學者立委齊批太寬鬆 難阻排碳大戶 | 環境資訊中心\\n減碳是全球面對氣候危機下的共同課題,環保署目前也在推動《溫室氣體減量及管理法》修法。綠色和平今(17日)與立委洪申翰、蔡壁如、陳椒華,以及中研院學者蕭代基舉行記者會,呼籲環保署應訂定清楚減碳途徑,對排碳大戶收取有效碳費,否則按外傳環保署官員所提每噸100元的寬鬆費率,台灣恐怕連2050年減碳50%的既有法訂目標都達不到,更遑論跟上國際間2050年淨零碳排趨勢。\\n除了環保署應制定合理「碳費」,蕭代基也建議財政部要徵收「碳稅」,並確保這些錢不會再被拿來補貼污染業者。此外,為避免影響產業競爭力,應同時徵收「碳邊境稅」(CBAM),其稅額等於碳稅稅額。\\n環保署委託學者撰寫碳定價報告 徵收費率、對象卻沒寫進草案\\n綠色和平專案主任鄭楚忻指出,環保署官員曾透露將參考新加坡作法,收取每噸新台幣100元的碳費,但環保署去年7月與英國在台辦事處合作,委託倫敦政經學院(LSE)做出的「台灣碳定價之選項」研究報告(Carbon pricing options for Taiwan)就有建議,碳定價必須有清楚的路徑藍圖,從每噸10美元(約新台幣280元)起跳,逐漸增加至2030年98美金(約新台幣2800元)的水準,透過明確的遞增路徑讓業者做出長期減碳規劃。\\n鄭楚忻表示,環保署在其提出的《氣候變遷因應法》草案版本中,只提及將建立碳費收取機制,其餘包含碳費徵收時間、費率、課徵對象,以及課徵原則都沒有出現,讓各界質疑環保署對排碳大戶收費是否避重就輕。\\n環保署出力不夠 學者盼財政部也出手徵「碳稅」\\n中研院研究員蕭代基建議,這次修法應明訂由財政部徵收「碳稅」、環保署收取「碳費」,若只有環保署徵收碳費,絕對不足以達成2050年淨零碳排目標,而且收的錢也建議不要補貼污染者,不能違背污染者付費原則,環保署可以將碳費拿來做污染防治、補貼全國大眾運輸等;此外,為避免影響產業競爭力,應同時徵收「碳邊境稅」。\\n蕭代基並建議,台灣可以效仿英國《氣候變遷法》,將草案的諮詢會改為獨立機關「氣候變遷委員會」,設專職委員及官員,負責訂定國家階段目標及管制考核業務,每年評估氣候變遷減緩與調適執行成果,提出年度檢討報告。\\n洪申翰籲應徵收有效碳費 促企業把碳排納入成本估算\\n立委洪申翰表示,目前約有120多個國家承諾2050淨零排放,碳定價就是其中一種相對應的政策工具,制定碳定價的目的,就是將要排碳行為對環境及社會所造成的衝擊貨幣化,進一步算出每一噸碳的真實成本。\\n洪申翰說,這不是要找企業或排放者的麻煩,而是必須把排碳、排放溫室氣體,對於環境與社會的成本算清楚,這樣才能將其納入企業經營的策略甚至成本估算,也才能引導企業、排放者把溫室氣體排放視為一件嚴肅、有成本有代價的事。\\n洪申翰強調,即使暫不將碳的價格或費率明定在法律當中,仍須要說明碳費的制定是為了達成「國家長期及各階段」溫室氣體減量目標,未來討論訂定碳費費率的子法,才能夠有減碳目標及路徑作為依循,不會落入毫無框架的吵架跟殺價。\\n台灣碳定價關鍵考量。圖片來源:台灣碳定價之選項(執行摘要)\\n蔡壁如:與其繳碳關稅給其他國家 不如用於增加國內產業競爭力\\n立委蔡壁如表示,歐盟將於2023年課徵碳關稅,對外國產品依碳足跡課稅,有學者估計將達每年數千億元,台灣與其繳碳關稅給其他國家,不如自己先課徵碳稅、碳費,來用於國內,積極落實減碳,以免國家競爭力受嚴重衝擊。\\n蔡壁如舉例,面對全球「綠色供應鏈」浪潮,台積電等公司已經在去年加入RE100,承諾2050年百分之百使用再生能源,確保可以繼續接到訂單。在碳定價的工具選擇上,從過去空污費、水污費經驗,短期內可立刻課徵「碳費」,但是碳費是環保署專款專用的小金庫,長期應課徵「碳稅」,以達到環保減碳、產業升級、社會分配正義的三重效果。\\n立委陳椒華則表示,環保署官員借鏡新加坡標準,提出提碳定價每噸100元令人匪夷所思,究竟這個價格的參考依據何來,呼籲環保署不應該忽略國際研究的建議。陳椒華批評,許多工商團體甚至以疫情為由,說不宜在此時立法強制徵收碳費,跟用電大戶條款的藉口一模一樣。碳定價是台灣能否有效減碳的關鍵政策工具之一,所有民眾都是相關利害關係人,請環保署務必做好溝通。\\n綠色和平表示,根據國際能源總署(IEA)於2019年出版之能源使用二氧化碳(CO2)排放量統計資料顯示,台灣的碳排放量在全球是第21名,人均碳排是全球平均的將近3倍。台灣減碳表現已經明顯落後於全球,沒有理由和條件在碳定價上選擇寬鬆的標準。\\n傳播科系畢業後曾任新聞外電編譯、採訪編輯、自由影像工作者,現任職專注綠電與碳權趨勢的國際媒體平台《RECCESSARY》編輯。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/235785', 'date': '2022-12-27', 'title': '「氣候法」收碳費夠不夠? 學者呼籲2026年開徵碳稅', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,碳費,碳稅,碳定價,氣候法,溫管法,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='「氣候法」收碳費夠不夠? 學者呼籲2026年開徵碳稅 | 環境資訊中心\\n立法院正在審查《氣候變遷因應法》草案,即將進入院會協商階段。民間學者今(27)日呼籲,為了達成2050淨零碳排目標,必須課徵比碳費還廣泛的「碳稅」,呼籲藉修法機會將碳稅明確入法,並於2026年開徵,預期更有助達成節能減碳、促進產業結構轉型。\\n學者表示,碳費因用途與收入受到限制,費率可能過低,導致缺乏減排的誘因與動機,且有可能讓人誤以為「只要付錢,就可以繼續排放」,碳稅則較具有一般性的管制誘導效果。\\n收碳費?還是徵碳稅?\\xa0學者主張:碳稅較優\\n國發會於今年3月公布「2050淨零排放路徑」,目前立法院也正在審議《氣候變遷因應法》(氣候法),在各草案版本中,都將碳稅或碳費當作最重要的政策工具之一。中研院經濟所兼任研究員蕭代基、台大風險社會政策研究中心主任周桂田,以及台科大專利研究所副教授陳衍任等學者今日召開記者會,說明碳稅較有助達成淨零轉型,呼籲將碳稅入法,設定先碳費、後碳稅的時程。\\n我國曾在2009年經行政院賦改會通過綠色稅制改革,目標能源稅、溫室氣體稅分十年開徵,但隨著行政首長異動和缺乏社會溝通而沒了下文。近年受到國際減碳壓力,相關碳定價機制的討論才再度浮上檯面。\\n中研院經濟所兼任研究員蕭代基解釋,碳定價目的在於為溫室氣體訂定一個價格,就像民眾使用電力就必須付電費一樣,每當電費提高,民眾就有進一步節約用電的動機。排放者也要付費才能排放溫室氣體,便可使排放者更有減少排放量的誘因與動機。\\n目前政院版本的氣候法草案,課徵的是「碳費」,與其他在野黨團提出的「碳稅」不同。蕭代基指出,碳費如同空污費,屬於「特別公課」,碳費收入必須用在有關氣候變遷之減量與調適的兩種用途。由於用途與收入受到限制,費率也可能過低,導致缺乏減排的誘因與動機,最終難以讓台灣達到淨零,更無法接軌歐盟的碳邊境稅(CBAM)。\\n台科大專利研究所副教授陳衍任指出,若單純採取以市場機制為基礎的管制工具,容易有環境道德的排擠效應,讓人誤以為「只要付錢,就可以繼續排放」,反而降低環保意願。碳稅的課徵較具有一般性的管制誘導效果,除了市場機制也配合傳統的監管措施,在財政工具選擇上,碳稅優於碳費。\\n籲2026年開徵碳稅 收入作為氣候基金\\n根據行政院環保署目前規劃,碳費徵收對象以年排放量逾2.5萬公噸二氧化碳當量(CO2e)的「排碳大戶」為主,如鋼鐵、半導體或水泥等產業,電力業的直接排放則被排除在外。同時也開放企業提出「自主減量計畫」,只要達成減量目標,就可適用優惠費率,碳費收入將作為「溫管基金」專款專用,優先用於輔導、獎助事業投資開發減量技術及研究。但立法院對於草案中碳費相關法條仍有歧見,有待院會協商討論,若仍未達成共識,將在院會投票表決。\\n蕭代基呼籲,氣候法應訂定2023年開徵碳費、2025年碳費落日,同時2026碳稅上路,並逐年提高稅率。而徵收對象不應只對排碳大戶徵收,應為所有排放溫室氣體之排放源,根據其排放量課徵碳費或碳稅。\\n學者們也主張,為遵從污染者付費原則,碳稅稅收不可以用於「補助事業投資溫室氣體減量技術」,稅收運用須符合財政中立原則,用於温室氣體減排、調適用途,或作為世代公平正義的碳債基金、氣候教育基金等回饋給民眾。\\n台大風險社會政策研究中心主任周桂田建議,相關基金用途上,可明訂「公正轉型」範疇,如歐盟在綠色正綱中之社會氣候基金(social climate fund)來作為社會補償與社會重分配,補償受衝擊者、企業、家戶或個人。\\n生在台灣,活在台灣,我們都是山與海的子民。'),\n", " Document(metadata={'url': 'https://enews.moenv.gov.tw/Page/3B3C62C78849F32F/eda88f0a-b3d0-4b10-a25b-1b2eddfd935d', 'date': '2021-11-20', 'title': '環保署說明碳費徵收規劃', 'category': '新聞發布', 'search_kw': '盤查', 'related_kw': None, 'official_website_source': 'https://enews.moenv.gov.tw/'}, page_content='環保署說明碳費徵收規劃\\n為因應氣候變遷,環保署已於本(110)年10月21日辦理修正「溫室氣體減量及管理法」為「氣候變遷因應法」之預告作業,除納入2050年淨零排放目標外,並規劃徵收碳費,專款專用於減碳工作之推動。依據目前預告修正草案第26條規定,碳費將分階段按其溫室氣體排放量徵收,而溫室氣體排放量之計算將涵蓋直接與間接排放量。為促使節約能源及兼具公平原則,亦即事業使用電力所造成間接排放部分,需由事業自己負責,不轉由發電廠承擔。換言之,用電量愈高者所需繳交碳費愈多。\\n環保署表示,目前已要求發電業和大型製造業每年8月底前盤查登錄其前一年溫室氣體排放量,包括其生產過程使用燃料、原物料之直接排放量與使用電力之間接排放量都有掌握,未來徵收碳費時,是向排放源依其直接與間接排放量徵收,徵收內容及徵收方式將由環保署規劃,徵收作業也將由環保署辦理。在前述依排放量徵收之原則下,尚無報章媒體報導將透過電費帳單收取之規劃。\\n環保署表示,目前溫管法修正草案預告作業持續進行中,參考過去各種徵收經驗,碳費制度需要考量多重因素:徵收對象公平性、減量效果、產業競爭力、大眾所得及消費影響、就業需求等。在實際運作方面,也需將「分階段徵收」、「差別費率」及「減量抵減」等機制逐一盤點。環保署將再進一步與各界深入討論,凝聚共識。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/233096', 'date': '2021-12-27', 'title': '【研商氣候法】碳費還要等 收多少、怎麼用? 環署擬另外公告「保留彈性」', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,污染治理,台灣新聞,氣候法,溫管法,碳費,深度低碳專題', 'official_website_source': 'https://e-info.org.tw/'}, page_content='【研商氣候法】碳費還要等 收多少、怎麼用? 環署擬另外公告「保留彈性」 | 環境資訊中心\\n推動2050淨零轉型,我國《溫室氣體減量及管理法》將修正為《氣候變遷因應法》,環保署展開一系列的修正草案研商會議,其中「徵收碳費」條款引起最多討論。環保團體綠色和平認為,政府若想讓碳定價有效促進企業減碳,就應修訂「(碳費)起始費率每噸300元並逐年提高」;另一方面,產業代表則認為,碳排放主要來自能源消耗,徵收碳費也不能只針對製造業,而是應隨油、隨電徵收,讓全民共同減碳。\\n環保署環管處目前已對我國高碳排的287家企業進行碳盤查,可完整掌握約2.27億噸碳排放,約佔整體碳排放的八成,可能是首波鎖定的碳費徵收對象。然而,何時開徵碳費仍遙遙無期,環管處表示,希望保留法條彈性空間,因此預告草案還未明定徵收對象及費率,將持續蒐集各界意見,修法完成後再由環保署另行公告。\\n綠色和平專案主任洪昇邦批評,碳定價若授權環保署另行公告,會讓空污費過低的問題重演,收費卻無法促進減排。圖片來源:會議直播\\n碳費收多少?\\xa0學者建議每噸300元起徵\\xa0 逐年提高10%\\n碳費要怎麼收、如何用、收多少?各界都有很多不同的意見。綠色和平專案主任洪昇邦指出,碳定價是要提供減碳足夠的經濟誘因,「有效碳定價」才能有助於達到減碳目的。\\n全球最早實施碳定價的歐盟,目前碳交易市場的碳價每噸約新台幣2000元。歐盟並規劃在2023年逐步實施碳邊境調整機制(CBAM),預計對進口的水泥、鋼鐵等特定產品課徵碳關稅,以防止國際貿易「碳洩露問題」(進口產品排碳未付費)。若產品已有被課徵碳稅費則可享有減免,因此各國都加速研擬碳定價,與其繳錢給歐盟,不如把錢留在本國使用。\\n洪昇邦表示,國際貨幣基金組織認為台灣若要接軌國際減碳目標,2030年有效的碳定價應為每噸75美元(約新台幣2100元);台灣綜合研究院副院長李堅明的研究也顯示,台灣企業平均減碳成本約為每噸1777元。\\n「若環保署碳費太低,無法提高企業減碳誘因,減碳目標注定跳票。」洪昇邦指出,環保署每年跟企業收取過低的空污費,而民眾依然生活在空氣污染中,就是環保署全權制定費率失能的例子。\\n洪昇邦說明,在法國、瑞士等國家,碳價費率都清楚寫在母法中,但環保署目前的草案卻沒有訂價機制,只有模糊的文字授權給行政機關另行公告。\\n中研院經濟所兼任研究員蕭代基建議,《氣候法》應明確規定環保署徵收「碳費」,財政部則徵收碳稅、能源稅及碳邊境稅,且三者要各有專章,把稅率、費率、用途等訂定清楚,不是授權主管機關「另訂之」。他建議,徵收費率可以先由每噸碳排300元起徵,每年調漲10%,十年後才可接軌國際碳價水準。\\n中研院經濟所兼任研究員蕭代基建議,碳費由每噸300元起徵,每年調漲10%。孫文臨攝\\n碳費跟誰收?\\xa0初步鎖定287家碳排大戶 產業界喊不公平\\n環管處說明,歐盟碳交易採總量管制,企業超額排放才須購買碳權,因此價格較高。碳費則是對每噸碳排都收費,開徵碳費前需先進行碳盤查,目前初步鎖定已掌握碳排資料的287家碳排大戶,每年碳排達2.27億噸,約佔台灣整體八成,未來再擴及其他產業,「台灣碳排放集中,碳排前十大企業就占整體七成,碳交易尚待討論,碳費先行較有減碳成效。」\\n對此,全國工業總會代表批評,徵收碳費的目的是為了減量,就應該維持公平性,「不應針對製造業,若只有290家排碳大戶負擔減少碳排,或分階段納入徵收對象,都可能造成產業間不公平競爭。」\\n全國工業總會代表指出,國際上碳費多是針對燃料徵收,台灣的碳費應比照新加坡,擴及所有產業,以電費附加費率徵收,住商、交通及企業費率應該一致,才能達到全民減碳的目的。\\n鋼鐵公會代表認為,母法中就應該載明碳費徵收原則,且碳定價設定務必要接軌國際,否則業者出口產品至其他國家,又會被課徵碳關稅。「碳費及總量管制必須分階段實施,且不應重複管制,若有繳碳費就不用被總量管制。」\\n鋼鐵公會代表強調,碳費對產業影響很大,環保署應會同經濟部討論。\\n環保署規劃碳費徵收對象初步鎖定有掌握碳排的287家企業,占全台總量約八成。圖片來源:會議直播\\n碳費怎麼用?\\xa0 環團:勿讓企業左手繳碳費、右手領補助\\n若依每噸300元徵收,每年2.27億噸的碳排放,估計約有681億的碳費收入,目前環保署規劃,這筆錢將優先用於研究溫室氣體減量技術,輔導、補助及獎勵辦理排放源的減碳工作,以及用於氣候變遷調適等。\\n不過,綠色公民行動聯盟研究員秦書淮批評,政府向企業徵收碳費後,又補助其減碳工作,根本是讓企業左手收碳費、右手領補助,他呼籲,「經費應該挹注在綠色轉型、公正轉型上,著重在受氣候變遷影響最大的族群。」\\n「碳費屬於污染者付費,不該再將碳費用於補貼污染企業,」蕭代基也說,由於未來負碳技術需要很多資金,應該優先把錢用於發展負碳技術,或補貼大眾運輸,部分碳稅收入則應分給全民,特別是受碳費衝擊的低所得弱勢民眾,以符合公正轉型原則。\\n環管處副處長黃偉鳴說,由於碳定價制度各國都還在學習,碳費價格若納入母法,未來可能需要經常修法,因此希望法條能保留彈性。他也說,「有效碳定價」不只有碳費一途,包含其他行政管制手段,加嚴碳排管理、能源稅等都是碳定價政策的一部分。\\n他也坦言,從法規體制而言,環保署無法要求其他部會做什麼事情,例如能源稅或碳稅應由財政部主責。\\n至於碳費收入用途,黃偉鳴則說,環保署會持續蒐集各界的意見納入評估,但依照大法官解釋必須專款專用,國際上的碳費收入也多用在產業減碳改善工作,「重點是可以把錢用在減少碳排放。」至於補助弱勢的事項,可能要待未來財政部更改稅制後再行討論。\\n\\n20211220《溫管法》修法草案by環境資訊中心公共檔案區\\n又名小鹿,經常把筆搬來搬去,喜歡潛水、爬山、旅行、音樂、文學、電影、煮咖哩、吃甜點...族繁不及備載。身而為人有點抱歉,也以鹿刻Luke為名寫字,努力辨識海中每一滴水的真名。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/236191', 'date': '2023-03-01', 'title': '半年內交出碳費徵收辦法環保署:3月起廣邀產業界研商', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,碳費,碳定價,氣候變遷因應法,溫管法,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='半年內交出碳費徵收辦法 環保署:3月起廣邀產業界研商 | 環境資訊中心\\n《氣候變遷因應法》15日總統公布施行以來,各界關注子法進度,如向排放溫室氣體的企業徵收「碳費」,費率及時程都還未定案。近日歐盟碳權價格飆破每公噸100歐元,更讓人好奇國內是否也將攀升跟進。環保署氣候變遷辦公室主任蔡玲儀今(24)日表示,預計3月開始和產業界公協會討論,最快年底就會推出碳費子法草案。歐盟碳價部分也有所掌握,但會優先考慮國內產業競爭力,不打算跟進。\\n《氣候法》修正上路 多項子法優先推動\\n立法院1月三讀通過「溫室氣體減量及管理法」修正為《氣候變遷因應法》,經總統本(2)月15日公布,正式上路實施。總計修正全文計7章63條,修正重點包含納入2050年淨零排放目標、確立部會權責、排放管制及促進減量、徵收碳費、增訂氣候變遷調適專章,強化資訊公開及公眾參與機制等,成為國內氣候法制重要基礎。\\n台灣永續能源研究基金會(TAISE)今(24)日辦理氣候法研討會,環保署氣候變遷辦公室主任蔡玲儀指出,這次修法核心是2050淨零目標入法,台灣因而成為全球第18個淨零目標入法的國家。環保署盤點修法後,尚有近30項事務需要訂定子法授權,其中關鍵的「碳費」子法關乎徵收費率、徵收對象,將優先展開研議,目標半年內提出子法草案,預估年底或明年初定案公布。\\n蔡玲儀受訪說明,氣候法上路後,碳費徵收對象仍是「先大後小」,以大排放源為初期徵收對象,但這個「大」如何定義,目前還在規劃中,預計3月開始就會和各公協會展開討論。此外,上市櫃公司的碳盤查與排放管理、基金的運用與資訊平合的建置等工作,也是環保署優先推動事項。\\n歐盟碳價飄破100歐元 我國不打算跟進\\n日前歐盟碳權價格飆破每公噸100歐元(約新台幣3200多元),創下歷史新高。國內產業界高度關注我國碳費費率是否跟進攀高,蔡玲儀解釋,有掌握到全球碳價上升趨勢,但制定費率時還要還是要考慮國內產業競爭力,並且要搭配的自主減量計畫,以落實減量為主。\\n蔡玲儀強調,碳價本來就會隨當地產業狀況而波動,不是跟上100歐元就「一切沒問題」,搭配的政策也要考量,如歐盟有「免費核配」政策,可以減免大部份的排放量。因此必須綜合考量對國內產業的影響,呼籲產業界著手開始碳盤查,有利於進一步的討論。\\n經濟部說明,因應俄烏戰爭影響歐洲天然氣供給,燃煤發電占比增加,發電業排放也隨之提高;同時為了抑制排放,歐盟逐年減少碳交易系統總額,在自由市場運作下,供給減少,歐盟碳權價格才會在2月22日突破每公噸100歐元。\\n生在台灣,活在台灣,我們都是山與海的子民。'),\n", " Document(metadata={'url': 'https://esg.gvm.com.tw/article/61161', 'date': '2024-07-25', 'title': '台灣碳費徵收進程一次看!企業衝擊有多大?環團10大建議?', 'category': '趨勢新知', 'search_kw': '碳費', 'related_kw': '碳費,碳排放,企業永續實踐', 'official_website_source': 'https://esg.gvm.com.tw/'}, page_content='台灣碳費徵收進程一次看!企業衝擊有多大?環團10大建議?\\n第四次碳費會議在7月5日前落幕,雖尚未定案,但針對模擬6種碳費費率對經濟影響,產業界出現反彈聲音。此外,碳費三子法草案也仍擁有諸多爭議。環團痛批現行規劃無法達到2030減碳目標,形同為產業界護航。\\n碳費目前還有哪些爭議?對產業、人民哪些衝擊?環境部長彭啟明能否如願在今年10月達成初步共識,拼在今年底前正式公告?\\n為因應氣候變遷與2050淨零目標,環境部採「碳費先行」,透過賦予碳排放成本,預計在2025年向首波重點企業徵收碳費,促使企業減少碳排放,最終達到碳排總量管制成果。\\n今年4月29日已預告《碳費收費辦法》、《自主減量計畫管理辦法》及《碳費收費對象溫室氣體減量指定目標》等子法,內容已定義碳費徵收對象、徵收方式、碳排消減目標、自主減量報告製作時程等。\\n在碳費費率上,環境部原訂3月預告、6月公告,但在各界意見尚無交集情況下,確定無法達成目標,恐延期至今年年底前公告。經歷半年召開多次碳費費率審議會,在7月的第四次碳費費率審議會才聚焦討論碳費費率。\\n然而,自從子法草案預告、碳費費率提出多項方案以來,仍受外界爭議。本文將整理目前碳費費率進度狀況、爭議點與對企業、社會影響。\\n2024碳費審議時程全部遞延\\n碳費費用制定\\n根據最新第四次碳費費率審議會報告顯示,委員會提出100、150、300、500、800、100等6個參考費率,以及有無高碳洩漏風險的2種情境。\\n為提高產業減碳誘因,碳費費率目前採分階段費率架構,依減碳成果逐步調升一般碳費費率,預計在2030年前透過三階段調整來達成減碳目標。\\n此外,更積極者也能透過一般與優惠費率的價差,創造自主減量的誘因,降低減量成效的不確定性。優惠費率可採科學基礎減量目標(SBT)或國家自定貢獻目標(NDC)。以SBT目標為例,鋼鐵業年削減率須達到25.2%、水泥業年削減率為22.3%,其他產業年削減率設定42%。\\n針對受管制對象屬高碳洩漏風險者,若提出自主減量計畫並承諾減量,可獲得風險折扣,作為過渡轉型期的調整機制,以降低碳洩漏風險。\\n台灣碳費制度參考歐盟、南韓、新加坡\\n目前碳費計算公式參考歐盟、南韓、新加坡及加州等過渡調整作法如下:\\n碳費=收費排放量X費率(一般或優惠)\\n有關收費排放量,非高碳洩漏風險企業的起徵碳排門檻值(k)為2.5噸,高碳洩漏風險企業則無起徵碳排量。\\n此外,碳洩漏風險係數值(CL係數)將分3期調整,分別為0.2、0.4、0.6。但企業須先取得核定之自主減量計畫,方可申請適用高碳洩漏風險係數。若未落實自主減量計畫或指定目標,則須依一般費率進行追繳,計算公式如下:\\n收費排放量=(排放量-k值)X 碳洩漏風險係數(CL)\\n首波碳費徵收對象:年排放超過2.5萬公噸的500家企業\\n根據《碳費收費辦法》草案,首波碳費徵收對象為「全廠(場)化石燃料燃燒之直接排放產生溫室氣體年排放量及使用電力之間接溫室氣體年排放量合計達2.5萬公噸二氧化碳當量以上之製造業及發電業」約500家,這些事業體直接加間接在2022年排放量約1.55億噸二氧化碳當量,約占全國總排放量54%,包括台積電、台塑、台電、中鋼等。\\n在2022年盤查結果顯示,一年製造10萬噸至50萬噸碳排量的企業有150家,共排放3392.9萬噸,為最多區間廠數;一年製造500萬噸以上企業有4家,共排放4814.8萬噸;2.5萬噸以下則有50家。\\n這500家首波徵收企業,須於每年5月底前,根據前一年度指1月1日至12月31日之溫室氣體排放量,計算應繳納之碳費。繳納方式依中央主管機關規定,採網路申報並至指定金融機構繳納。首年若未滿1年,則以費率公告生效日期當月起算,依月份比例計算繳交碳費。\\n碳費對整體經濟影響\\n根據第四次碳費費率模擬結果,在未考量高碳洩漏風險的一般情境下,碳費對台灣整體經濟的影響如下:\\n● 對GDP的影響約為0.04%至0.4%\\n● 最高衝擊GDP約942億元\\n● 對CPI(消費者物價指數)的影響則為0.0269%至0.2687%\\n若考量高碳洩漏風險產業並給予0.2的碳洩漏係數折扣,碳費對台灣整體經濟的影響如下:\\n● 對GDP的影響則為0.018%至0.181%\\n● 對CPI的影響則為0.0121%至0.121%\\n環團:目前碳費設計恐難達成2030減碳目標\\n環團憂碳費三子法草案恐無法發揮價格訊號,讓碳費徵收淪為「折扣大拍賣」。多個環保團體批評,碳費三子法草案納入高碳洩漏風險係數、2.5萬噸免徵額等設計,恐無法發揮有效的價格訊號,更難達到台灣在2030年要減碳24±1%的目標。\\n環團指出,草案設計的高碳洩漏風險係數折扣,可能讓高汙染產業輕易取得減碳成本優惠,降低減碳誘因。此外,2.5萬噸免徵額恐讓部分企業免繳碳費,進而抵消碳費的整體減碳效果。\\n環團針對目前碳費制定提出10大建議如下:\\n1.建議提高碳費價格,並完善中長期制度規劃,包含費率調漲路徑及起徵門檻下降期程,促使產業提早因應減碳\\n2.建議刪除《碳費收費辦法草案》第四條有關按月比例計算碳費的規定,以符應碳費如期開徵及以整年為基礎徵收的精神\\n3.建議碳價收入公開透明,並用於創新低碳技術發展及公正轉型,以加速台灣淨零轉型\\n4.建議一般費率為500元起徵,並逐年調漲\\n5.建議優惠費率不低於300元\\n6.建議給予減量目標超越國家目標的企業優惠費率,並公開相關資料\\n7.碳抵換應嚴格限制抵扣比率上限 5%。\\n8.刪除 2.5 萬噸免徵額及碳洩漏風險係數,加速規劃台版碳邊境調整機制 (CBAM) 的實施。\\n9.若保留碳洩漏風險係數值設計,應於《碳費收費辦法草案》第六條增訂風險係數值階段調整時程,並於 2034 年前完全取消風險係數值折扣方案。\\n10.為加速產業淨零轉型,建議搭配碳定價政策推動以下措施:制定產品碳排放標準、設立溫室氣體減量技術補助獎勵機制、推動低碳政府採購\\n碳費對企業衝擊\\n環境部長彭啓明強調,徵收碳費對物價、經濟的影響微乎其微,甚至比漲電價的影響還低。他指出,碳費的目的是協助企業減碳,而非為政府增加稅收。政府未來也會積極協助減碳步調較慢的企業,共同達成減碳目標。\\n然而,在碳費費率方案提出後,鋼鐵業表示,即使鋼鐵業是碳洩漏敏感產業,可以透過自主減碳取得碳費折扣,但徵收碳費後,仍會提高鋼廠的成本。由於目前整體市場狀況不明,若環境部最終決定的費率每噸超過300元,甚至達到1,000元,鋼廠將立即宣布下年度虧損。以每年300元費率,每年產生500萬噸為例,碳費至少收取15億碳費。\\n另外,運輸業雖然不在首波徵收產業,交通部根據《2022年燃料燃燒之二氧化碳排放統計與分析》指出,若每噸收取300元碳費,台鐵碳費收取約新台幣1億217萬元;高鐵次之,約8,390萬元;台北捷運約4,690萬元;新北捷運則約68萬元。這些碳費恐會造成票價調漲,衝擊通勤族生活成本。\\n中華民國全國工業總會指出,企業必須達成指定目標才能取得碳洩漏風險折扣(CL係數)和優惠費率。然而,目前產業可執行的減碳措施已盡力達成,實務上,部分企業難以達標指定目標。若碳費超過300元,企業若無法達標,將無法獲得碳洩漏風險折扣及優惠費率,恐由盈轉虧。倘若碳費徵收至500元,企業將更難以負擔。\\n中鋼指出,環境部已經為高碳洩漏風險產業等設計了相關配套措施,雖然考量到產業所面臨的困境,但即使有配套,「中鋼仍需繳交高於國際鋼鐵同業所繳交的碳費」。中鋼表示,將積極減碳,並向環境部提出「自主減量計畫」,以取得優惠費率,減緩碳費衝擊。\\n收取碳費費率初衷是促使企業減碳,檢視非必要碳排與精準減少耗能,對企業來說可以永續下去,也能協助地球、台灣能永續發展,得以讓生物、人類、大自然繼續生存。然而,對於費率收取高低的抉擇,一方面恐會造成產業消逝與企業倒閉,另一方面卻可能讓減碳毫無效果,要達到平衡恐讓審議委員,以及環境部門,甚至經濟部門精密判斷。'),\n", " Document(metadata={'url': 'https://esg.gvm.com.tw/article/13016', 'date': '2022-09-25', 'title': '碳費徵收倒數!不是排碳大戶也難逃「兩面夾擊」', 'category': '趨勢新知', 'search_kw': '碳費', 'related_kw': '碳定價,CBAM,碳稅,碳費,碳排放', 'official_website_source': 'https://esg.gvm.com.tw/'}, page_content='碳費徵收倒數!不是排碳大戶也難逃「兩面夾擊」\\n環保署預告最快2024年收取碳費,企業排碳將是製造成本之一,每家廠商都逃不了最終被收取費用,這股「綠色改革」浪潮,無論是直接衝擊或間接影響,都將全面改變產業風貌,台灣淨零賽局正式開跑。\\n碳盤查技術團隊進入工廠,先環顧四周後,直往鍋爐區確認燃料用的是天然氣,隨後開始盤點廠內公務車與辦公室空調,幾台車、幾部冷氣一一確認仔細登錄,因為多填或少寫,都將牽動一家企業被課徵碳費的高低。\\n目前可以確定的是,年排放2.5萬噸的排碳大戶將要收取碳費,首波約287家,包括鋼鐵、石化、水泥與半導體等廠商,至於第2波強制納管申報碳排的250家,環保署至今未鬆口是否課徵碳費。\\n電機大廠東元ESG推動辦公室執行長林弘祥透露,若以2.5萬噸排碳大戶標準來看,東元不在287家名單內,「跟我們這幾年做的事情有關,如果沒有做,很有可能被列入。」\\n不在排碳大戶名單,也難逃碳費全面衝擊\\n林弘祥解釋,東元的減碳動機,不可否認是源起客戶要求,因為集團布局國際市場,當年北美客戶提出高效率馬達要求,公司分析背後原因一定是為節約能源,而這又與碳排息息相關。\\n嗅到市場需求起了變化,林弘祥說,東元2007年發表TECO GO ECO減碳護地球宣言、2013年起自發性做台灣地區的溫室氣體盤查,同時著手優化製程、試著降低排碳,2021年更在中壢廠設置太陽能再生能源發電設施,取得自發自用綠電憑證發行資格,並針對空調產品導入綠色環保冷媒。\\n儘管如此,林弘祥認為,供應商會受碳稅費機制影響,多少可能轉嫁,對東元而言,間接成本恐上揚。\\n他進一步說明,排碳大戶多數是大企業,可能較有能力吸收碳費支出,或是因占有市場,可轉嫁至下游客戶,但下游端大多為中小企業,且以從事外銷為主,若成本壓力過大,到了海外,競爭力恐受影響,宛如「兩面夾擊」。\\n換言之,碳費影響的不僅是排碳大戶,中小企業也難逃碳定價帶來的衝擊,林弘祥認為,台灣碳費可採取階段式推進,從低價開始、不要一次到位,訂定明確時程及該時程適用的費率,讓企業得以緩衝因應。\\n台灣碳費要訂多少?工總:先求有\\n碳費應課徵100元還是300元? 產業界盼務實面對國內碳費費率仍無定數,「喊價」從每公噸新台幣100元至300元不等,工業總會表示,台灣碳費要訂定多少,並非單純參考歐盟、亞鄰國家做法即可,主要端視國內的減碳政策目標為何,以及何時達成,且經濟發展程度與企業承受力、競爭力,也須兼籌並顧。\\n同時,企業邁向淨零,須先進行溫盤,才能著手減碳,但此過程仰賴技術,工總指出,國際能源署(IEA)評估已知技術對減碳的貢獻,成熟技術僅挹注26%,也就是說,以現有成熟減碳技術,不足以達成2050年淨零目標。\\n工總建議,政府可先端出「具體可行」的減碳路徑與能源配比階段性目標,產官學公開討論合理費率,並以「先求有」低門檻費率入門,再滾動調整,最終邁向全產業適用的方式,課徵碳費,並公布收入實際用途。\\n現階段主管機關納管的碳費課徵對象是287家每年排碳2.5萬噸以上的大戶,不過,工總秘書長陳益民指出,台灣以出口為導向,而碳中和是世界大勢所趨,總有一天將牽涉整體供應鏈,因此工總正透過多管齊下教中小企業怎麼做碳盤查,盼以政府推動淨零政策的夥伴角色,攜手業者接軌國際綠色浪潮。\\n本文轉載自2022.09.24「中央社」,僅反映作者意見,不代表本社立場。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/238302', 'date': '2024-01-05', 'title': '氣候署碳費規劃環團籲勿開放2.5萬噸免徵額、不要「垃圾碳權」抵碳費', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,碳費,碳權,溫室氣體,氣候法,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='氣候署碳費規劃 環團籲勿開放2.5萬噸免徵額、不要「垃圾碳權」抵碳費 | 環境資訊中心\\n全台碳排2.5萬噸以上,共500多家排放源將繳碳費,環境部3日提出,業者可扣減2.5萬公噸排放量再計算,遭環團批評形同給予業者2.5萬的免費排碳配額。綠色公民行動聯盟指出,若以碳費費率每噸300至500元計算,我國每年碳費將少收37至60億元。環境部則回應,所得稅、空污費都有類似做法,會尊重環團意見,再與各界溝通。\\n環境部3日辦理「碳費徵收子法推動進度交流座談會」。攝影:陳昭宏\\n環團齊批 環境部送上2.5萬噸「免費排碳」配額\\n碳排大戶將在2025年以今(2024)年盤查結果為依據繳交碳費,然而,相關子法進度都不如預期,環境部3日辦理「碳費徵收子法推動進度交流座談會」,還是沒有提出碳費費率,不過首次拋出「排放量扣減2.5萬公噸」再乘以費率的計算方式,引起在場民間團體不滿。\\n綠色公民行動聯盟專員沈宜臻表示,扣減2.5萬噸形同給予業者「免費排放配額」,恐降低業者減碳壓力。他並指出,若以500家排放源、每噸排放收300至500元計,我國碳費將減收37~60億元。此外,碳費是針對個別工廠收取,因此擁有越多工廠的企業,獲得的免費配額也越多,更容易讓企業透過調度生產線的方式規避碳費。\\n氣候署目前草擬的碳費費額公式。圖片來源:擷取自氣候署簡報\\n荒野保護協會氣候變遷組組長陳雍慧表示,少徵恐怕讓碳費涵蓋全國整體排放的比率更低。根據環境部說法,在減徵2.5萬噸前,碳費約能涵蓋全國55至60%排放量,若真的減徵2.5萬噸,「會不會連五成都課不到?」\\n針對碳費涵蓋率,氣候署署長蔡玲儀以世界銀行數據回應,全球平均值僅約25%,我國應不算低。不過世界銀行資料顯示,新加坡碳稅涵蓋率達80%、南韓也有74%。\\n氣候署稱照顧門檻邊緣業者\\xa0台積電、友達也成「邊緣廠家」\\n蔡玲儀說明,碳費「扣減2.5萬噸」的設計是為避免位於門檻邊緣的廠家,出現「2.51萬噸要全繳、2.49萬噸全不繳」的狀況,降低行政管理困難,並指出所得稅、空污費也有類似做法。\\n台灣氣候行動網絡研究中心總監趙家緯仍質疑,如果只是要解決門檻邊緣廠家問題,「怎麼會普遍性讓500家的廠商全都適用?」且位居2.5萬公噸邊緣的台積電、友達等業者都具市場競爭力,並不需要免費配額。\\n允許碳權扣抵碳費 環團:不具外加性「垃圾碳權」竟入列\\n除了碳費算法,環境部也於會中確認,經政府認可的國外碳權可在5%額度內扣抵碳費;國內的自願減量專案、抵換專案、先期專案等三種碳權,也都能一定比例扣抵碳費,但「先期專案」僅限用於2024、2025年兩年排放。\\n台灣氣候行動網絡研究中心研究員林雨璇對此批評,多年前環保署核可6000多萬噸「先期專案」的標準寬鬆、且不具外加性,形同「垃圾碳權」;若皆用來抵碳費,將削弱碳費成效,也會衝擊其他國內碳權的價值。至於國外碳權,則必須在碳費費率漲至一定水準後才可開放抵換,避免影響碳權市場。\\n環境部表示,未來國內外碳權都可依規定扣抵碳費。圖片來源:擷取自氣候署簡報\\n企業努力減碳可享碳費優惠 「努力目標」怎麼訂?\\n在碳費優惠費率方面,環境部也提出法定的「指定目標」,業者減碳達標將可透過「自主減量計畫」獲得優惠,但標準如何訂定,環境部尚在與各界協商。\\n趙家緯指出,環境部目前對外都將「指定目標」與我國2030年「國家自訂貢獻」(NDC)連結,即2030年減排23至25%。他指出,民間多次指出此目標落後,若環境部再依此訂定,恐難透過自主減量加快產業減碳,也難以落實污染者付費。環境部「指定目標」應跟隨即將訂定的「第三階段管制目標」(2026至2030年)或未來NDC拉升。\\n台灣氣候行動網絡研究中心總監趙家緯。攝影:陳昭宏\\n趙家緯也提醒,政府給予優惠費率,應遵守「科學基礎減量目標」(SBTi),但目前煤及石油製品等產業都還未有國際認定的目標,難以援引海外數據,應暫緩給予相關產業任何優惠。\\n就算產業在國際上已有SBTi,環境部也勿因業者遊說而放寬標準,他特別點名中鋼,中鋼僅承諾減碳25%,但國際早已針對鋼鐵業訂出2030年達到35至42%的減碳幅度。\\n探索矇矓中開展的世界、滲透身體的網,與身體和環境結盟,共同行動。'),\n", " Document(metadata={'url': 'https://esg.gvm.com.tw/article/32118', 'date': '2023-08-29', 'title': '碳費2025年開徵!優惠費率誰適用?買碳權可抵碳費嗎?', 'category': '趨勢新知', 'search_kw': '碳費', 'related_kw': '碳費,碳權', 'official_website_source': 'https://esg.gvm.com.tw/'}, page_content='碳費2025年開徵!優惠費率誰適用?買碳權可抵碳費嗎?\\n8月22日,環保署正式升格環境部,對於外界關注的碳費徵收,氣候變遷署表示,確定將以2024年全年排碳量為計費基礎,2025年開始繳納。不過,相關子法究竟何時拍板?企業購買碳權可抵碳費嗎?\\n8月22日環保署正式升格為環境部、設立四署一院,由前中興大學校長薛富盛接下首任部長。同日下午,三級機關包含各界關注的「氣候變遷署」「資源循環署」「環境管理署」及「化學物質管理署」,也在產官學研見證下完成揭牌儀式。\\n總統蔡英文、行政院長陳建仁致詞時提及,為協助產業因應國際減碳要求,台灣碳權交易所已於8月7日掛牌,期盼環境部升格後在治理上發揮更大功能,並加速《氣候變遷因應法》(以下簡稱氣候法)子法及碳費機制修訂。\\n榮升氣候變遷署署長的蔡玲儀也分享,為加速推動氣候法12項子法研擬,加強跨部會合作、及整合淨零關鍵戰略需求,早在升格之前,行政院就在今年4月22日核定氣候變遷署籌備處,以增補人力。\\n環保署受限組織法從2008年溫室氣體減量管理辦公室、2021年設立氣候變遷辦公室,終於從籌備處正式升格氣候署。未來,除了原先負責淨零的綜合業務組、排放管理組、減量推動組、韌性調適組,亦新增碳費推動組。\\n今年6到8月,氣候署已陸續預告氣候法4項子法草案修訂,並辦理公聽研商會。包含「溫室氣體排放量盤查登錄管理辦法」「溫室氣體增量抵換管理辦法」「溫室氣體自願減量專案管理辦法」及「溫室氣體認證機構及查驗機構管理辦法」,皆會按原訂期程走完,再向環境部長報告、公布施行。\\n碳費徵收延後一年,企業2025年開始繳納\\n歐盟碳邊境調整機制(CBAM)、美國清潔競爭法案(CCA)陸續於明(2024)年起開徵,不少企業超前部署制定內部碳定價,究竟台灣碳費何時公布?\\n蔡玲儀在揭牌後接受媒體聯訪,她解釋,環保署7月時已和各產業公會、工總擘劃碳費藍圖,包含碳費相關子法的收費辦法、收費對象及優惠費率、指定減量目標與自主減量計畫審核辦法和碳費費率審議會設置要點等。\\n她進一步說明,現階段碳費徵收對象以年排放總量2.5萬公噸以上的製造業和電力業為主,原先預計2024年開始徵收碳費,確定延後一年上路。也就是說,政府會以2024整年排放量為徵收和計算依據,企業首度繳納碳費時間點將落在2025年。到了2026年,歐盟CBAM正式開徵碳關稅,台灣企業在原生產國已繳交碳費,產品出口時也能銜接得上。\\n不過,蔡玲儀補充,碳費並非單一費率,根據氣候法第29條,被徵收對象可以提出自主減量計畫,即可適用優惠費率。因此,9月也會持續與產業討論碳費、自主減量計畫如何訂定,預計今(2023)年底提出相關子法草案,明年初召開費率審議會、確立碳費費率,讓需繳交對象儘早編列預算。\\n對此,薛富盛表示,環境部會站在國家及公正社會的角度衡量,和課徵對象500家企業積極討論,「雖然無法讓大家都滿意,但希望可以訂出一個可接受的(碳費)價格。」\\n一個減碳,多種抵換方案,有何差別?\\n蔡玲儀直言,「碳費徵收目的是鼓勵企業減量,不是為了要收費,」目前氣候署偕經濟部工業局,正密切和產業討論如何訂定自主減量計畫,並以優惠費率作為達標誘因。\\n今年初國發會上修2030年台灣國家自訂貢獻(NDC)的減碳目標至24±1%,蔡玲儀表示,年底也會公布整體製造部門2030年減量目標的初步規劃。\\n買碳權,可以抵碳費嗎?\\n隨著台灣碳權交易所開張,未來企業在國內透過自願減量專案獲得的減量額度,是否能在碳權交易所買賣,備受關注。\\n對此,蔡玲儀強調,「碳費和碳交易是促進減碳的關鍵工具」,未來氣候署有兩項重要工作:其一,對碳排大戶增收碳費,目前納管國內500間企業。其二,透過減量額度(也叫碳權)交易機制,鼓勵更多中小企業申請自願減量專案,將來獲得的減量額度可放上國內碳權交易平台。\\n根據目前規劃,碳權交易所的主要來源有三:高品質、不重複計算的國外碳權,以及國內碳權包括「自願減量額度」及「增量抵換額度」。\\n自願減量額度包含沼氣發電或透過相關專案取得,初期僅提供有環評需求的業者。氣候署也正在修訂增量抵換辦法,提供有抵換需求的業者(如:科學園區或工業區)及一般民眾申請增量抵換專案,如機車汰換購買電動車。\\n至於國內外碳權來源、交易對象與方式、認列規則,有待氣候署修訂相關子法、建構全國一致的標準,避免各部會不同調。針對外界關心「買國外碳權,可以抵碳費嗎?」蔡玲儀回應,氣候法子法會先訂定國內碳權抵減比例,後續再訂出國外碳權額度認可準則。換言之,碳費徵收對象有一定比例可用國內減量額度扣減。碳權交易辦法預計11月預告,今年底公告相關辦法。\\n按現行法律規定,只有在碳權交易所上架、購買的國外碳權,才會被氣候署認定、進行扣抵。蔡玲儀語重心長說,未來還是希望先擴大國內自願減量的幅度,「畢竟買國內碳權至少是在台灣透過養豬場、工業製程減量的額度,對國家減碳效益較大。」'),\n", " Document(metadata={'url': 'https://esg.gvm.com.tw/article/49638', 'date': '2024-04-03', 'title': '碳費徵收將延後?台灣獨步全球卻引發企業碳焦慮', 'category': '趨勢新知', 'search_kw': '碳費', 'related_kw': '碳費,2050淨零碳排放', 'official_website_source': 'https://esg.gvm.com.tw/'}, page_content='碳費徵收將延後?台灣獨步全球卻引發企業碳焦慮\\n原定3月底出爐的台灣碳費費率方案,確定跳票,企業急跳腳。政府遲未公布收取碳費的影響範圍以及配套措施,讓企業對繳交碳費、購買碳權一知半解。原定2025開徵、獨步全球的台灣碳費機制會延遲上路?環境部長薛富盛表示「納入考量」。\\n台灣碳有價時代來臨!為了達成2050淨零排放,台灣決定開徵碳費,企業製造多少碳排放,就要繳交相對應的費用給環境部。然而,碳費費率審議會經過3月的兩次會議,卻還沒討論到重點,排碳到底要繳多少錢,至今沒人知道。\\n這也代表環境部預設3月底碳費費率出爐的目標已經確定跳票,產業界人心惶惶、急得跳腳。雖然4月即將再度舉行碳費審議會,但勢必影響2024作為起徵基礎年、2025正式徵收碳費的目標,碳費徵收時程是否因而延遲?日前,環境部長薛富盛表示目標照舊,但會將延徵方案「納入考量」。\\n全球唯一碳費制度,卻可能衝擊企業營運?\\n而台灣選擇徵收碳費,而非碳稅,也是全球唯一的嘗試。薛富盛表示,台灣會先施行碳費,但2030年可能是「轉折點」,碳費可能轉成碳稅。\\n但現階段,台灣各界最關心的是碳費費率怎麼訂。對此,環團、企業各有不同看法,環團希望第一年先從每噸500元起徵,工商界則認為每噸100元較妥,畢竟碳費是一筆不小的資本支出,可能衝擊企業營運。\\n工總則提出五點建議,包括不重複課徵、須兼顧產業國際競爭力、費率先低後高並滾動式檢討、一併考量企業先期投入自願性減碳的成果以及應按照指定目標達成度讓企業享有優惠費率。工總也提到,必須審慎控制通膨與穩定物價,才能合理徵收碳費。\\n碳定價應儘速確認,還要搭配誘因機制\\n事實上,已經有學者、專家對此示警,台灣碳費價格不該任憑民間隨意喊價,政府應揭露收取碳費的影響範圍還有使用碳費的配套措施,現在卻只討論到「要收多少錢」。\\n中經院能源與環境中心主任劉哲良也認為,政府必須思考「碳定價框架」,除了訂定碳排的固定價格,還要搭配碳費或環評等誘因機制,同時搭配臺灣碳交所協調買賣碳權商品,才能帶動自願減量額度的供給,增加減碳成效。\\n「可以提供碳權商品讓企業選擇,但更重要的是跟大家說碳權是什麼、可以用在哪裡。現在的麻煩點是說,企業做生意過程中,有人要求你做,你就不得不做!坊間還會有『不減碳就是不道德』的說法,」劉哲良認為,減碳當然要做,碳費也得開徵,但企業「理解」碳權更是當務之急。\\n劉哲良坦言,企業現在對於減碳有許多誤區,例如有企業認為優化設備,提高節能與生產的效率,這樣就可以申請碳權,「一般來說,碳權不是生產端可以申請,而是消費端!就算你設備比人家好,但生產設備的過程就是排碳啊!沒有減碳。」\\n碳費以價制量,企業減碳必須「長期規劃」\\n碳交所總經理田建中強調,減碳所需的設備汰換是必須審慎規劃的資本支出,企業不用太在意第一年的碳費價格,「長期規劃」才是重點,碳費制度是以價制量的工具,碳有價經濟則能推進企業減碳,是一種正向發展。\\n而要推進企業減碳,其中一個直觀的方式就是購買碳權。田建中指出,臺灣碳交所的碳權商品相關資訊揭露,參考國際交易平台如新加坡CIX及美國CBL,商品或專案的詳細資訊會提供會員,交易量也不會對外公開,因為碳權是一般商品,不是類似股票的有價證券。\\n環境部氣候變遷署副署長黃偉鳴表示,目前子法相關草案架構都已完備,剩下行政程序,期盼4月召開第三次碳費費率審議會時,就能把子法預告草案提供委員參考,2025年開徵碳費的目標也沒有改變。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/232477', 'date': '2021-10-13', 'title': '最快2023年開徵碳費 環保署:初期徵收對象鎖定「排碳大戶」', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台北市,台灣新聞,淨零碳排,碳費,碳關稅,溫管法,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='最快2023年開徵碳費 環保署:初期徵收對象鎖定「排碳大戶」 | 環境資訊中心\\n《溫室氣體減量及管理法》(簡稱《溫管法》)正在進行修法作業,目前確定納入碳定價機制,環保署長張子敬今(13日)於立法院進一步表示,規範碳費相關徵收辦法的子法,最快可在2023年公布實施,而碳費收取對象初步以年排放量逾2.5萬公噸二氧化碳當量(CO2e)的「排碳大戶」為主。但具體內容仍有待《溫管法》母法修法通過後,再統整各界意見訂定子法。\\n因應歐盟碳關稅機制 政府將優先輔導出口導向製造業\\n立法院經濟委員會今日邀請經濟部長王美花、環保署長張子敬及國家發展委員會主委龔明鑫,就「如何協助中小企業永續轉型」進行專案報告並備質詢。\\n王美花報告指出,淨零碳排已成為國際趨勢,各國為了達成減碳目標,紛紛祭出碳定價機制,利用經濟工具抑制碳排放。但我國碳市場規模小,排放源集中,為避免發生碳價劇烈波動問題,目前《溫管法》修法規劃先以高碳排產業為主要收費對象,再慢慢擴及中小企業。\\n張子敬表示,環保署正在積極進行《溫管法》修法作業,要將「2050淨零碳排」納入法規、訂定碳定價機制,再加上現有溫室氣體盤查登錄機制,協助產業掌握碳排放量。\\n龔明鑫說明,歐盟的碳關稅機制,初期只針對水泥、電力、肥料、鋼鐵、鋁等五大高碳洩漏風險產業,但只要在出口國內已課徵相關碳成本費用即可減免,因此政府會優先輔導這些將受衝擊的出口導向製造業。\\n最快2023年開始收碳費 對象為年排逾2.5萬噸CO2e產業\\n在加速減碳的壓力之下,《溫管法》修法成為政府重要的法源依據。張子敬在本月初宣布,會在10月底之前,正式提出修法草案預告,經兩個月預告期蒐集意見後送交行政院審查,盼能在立法院下個會期審查通過。\\n其中,碳定價機制備受立委關注。張子敬今日說明,碳定價的問題牽涉範圍廣泛,既要兼顧減碳效果,又不能衝擊產業,因此必須擴大徵詢各界意見。他強調,希望下個會期通過《溫管法》修法確立母法,再訂定具體的碳費子法。\\n張子敬進一步說明,面對歐盟開徵碳關稅壓力,我國的碳定價機制「不能拖」,待母法通過後加緊研擬子法,希望最快能在2023年訂出碳費子法並實施收費。至於收費對象,初步規劃從每年排放2.5萬公噸CO2e以上的「排碳大戶」開始徵收,因這些產業就佔了我國碳排放量八成以上;短時間內不會對中小企業課徵碳費。\\n不少立委關切具體碳費價格會如何訂定,對此王美花及張子敬仍不鬆口。張子敬強調,定價還需要和各界討論,找出企業能忍受、又能達成減碳效果的範圍;確切收取時間、範圍或金額都有待子法訂定。\\n培養中小企業碳排放盤查能力 盼以供應鏈「大帶小」協助轉型\\n要收取碳費,就必須掌握碳排放量。張子敬表示,目前環保署已建立「溫室氣體排放量盤查登錄平台」,公告第一批應盤查登錄的排放源為發電、鋼鐵、石油煉製、水泥、半導體及薄膜電晶體液晶顯示器等特定行業別,或是年排放量超過2.5萬公噸CO2e的業者,目前共有288家業者應盤查登錄。\\n王美花表示,因中小企業的溫室氣體排放量較少,這次《溫管法》修法方向中有特別規劃給中小企業的簡化盤查程序。此外也正在積極協助指引,以輔導中小企業掌握自身的溫室氣體排放狀況,建立盤查能力。張子敬補充表示,雖然短期內不用盤查登錄,但中小企業可能也將面臨供應鏈對碳排放的要求,因此也必須建立盤查能力。\\n王美花強調,經濟部會持續協助中小企業永續轉型,也期盼透過國內緊密的供應鏈,以「大帶小」方式,由大企業協助中小企業減碳轉型。\\n生在台灣,活在台灣,我們都是山與海的子民。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/238974', 'date': '2024-04-24', 'title': '520前能出爐? 環團批環境部碳費費率延宕引發通膨焦慮', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,能源轉型,台灣新聞,碳費,碳定價', 'official_website_source': 'https://e-info.org.tw/'}, page_content='520前能出爐? 環團批環境部碳費費率延宕 引發通膨焦慮 | 環境資訊中心\\n環保團體今(24)日赴環境部遞交建言書與研究報告指出,碳費費率與規則延宕,已經讓碳焦慮從企業擴散至一般民眾,更有房地展業者假借碳費之名加價、加劇通膨,呼籲環境部與碳費審議會盡速公告碳費費率。費率公布能否趕在520政府前?環境部官員低調表示,「希望越快越好」。\\n收碳費致「綠色通膨」? 環團:延宕才會\\n環境部原定2024年第1季公告碳費費率,至今仍不見費率出爐。綠色和平與環境權保障基金會今(24)日發布《有效碳費機制與公正碳費收入使用之規範研究》報告,並將報告書遞交給環境部,呼籲加速完成碳費徵收辦法,緩解社會「碳焦慮」。\\n綠色和平氣候與能源專案主任徐祥誠指出,目前碳費費率延宕,已經讓碳焦慮從企業擴散至一般民眾,不只有心減碳的企業無所適從,甚至有房地產業假借碳費之名加價,衝擊民生經濟加劇通膨。\\n近期不少論述指出,碳費會使企業成本變高,進而導致物價提升,形成「綠色通膨」。徐祥誠表示,綜觀目前國際間的碳定價制度,在荷蘭、挪威、加拿大、冰島等國家,反而是考量通膨因素而調漲碳費費率,確保企業有效減碳並擺脫化石燃料。根據國際貨幣基金組織(IMF)今年2月發出的歐元區碳定價與通膨研究報告,即使歐盟於2030年將碳排放交易系統(ETS)價格提高至150歐元(約新台幣5235元),對於通膨的影響也僅有0.4%。\\n徐祥誠強調,真正的對物價的影響是來自國際能源價格飆漲,若要減緩通膨問題,應更早落實碳費制度,提高企業使用化石燃料的碳排放成本,才能引導產業因應國際能源價格波動。\\n環團呼籲碳費500元起徵、儘快公開衝擊評估報告\\n環境權保障基金會專職律師呂冠輝表示,這份研究報告是環團參酌過去國際經驗所完成的。綜合國內外研究,在碳費時程嚴重延宕的前提下,建議環境部應該以500元價格起徵,才能在2030年順利達到排碳成本內部化的3000元價格。\\n環境部氣候變遷署碳費推動組長周仁申收下建言書,並感謝環團的建議,不過他表示,這份報告在2022年4月完成,其中內容環境部已有部分掌握,相關訴求已在《氣候變遷因應法》中修法納入。環境部表示,仍會細看報告內容,後續進展也會持續跟各界溝通說明。\\n5月初開第三次碳費審議會 可能不會提出費率\\n下一次碳費費率審議會何時召開?氣候署組長周仁申受訪時指出,目前碳定價相關的三個子法「碳費收費辦法」、「自主減量計畫管理辦法」及「碳費收費對象溫室氣體減量指定目標」的法制程序幾乎完成,正在準備預告,待子法預告後就會召開第三次審議會。但實際上要討論到費率,可能要等第四次會議。\\n費率公布能否趕在520政府前?周仁申低調回應,「希望越快越好」。\\n生在台灣,活在台灣,我們都是山與海的子民。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/239018', 'date': '2024-05-03', 'title': '碳費子法首見碳排「打2折」 環團估將損失逾300億碳費收入', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,能源轉型,台灣新聞,碳定價,碳費,排碳大戶,碳權,氣候法,環境部,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='碳費子法首見碳排「打2折」 環團估將損失逾300億碳費收入 | 環境資訊中心\\n環境部4月29日預告「碳費收費辦法」、「自主減量計畫管理辦法」及「碳費徵收對象溫室氣體減量指定目標」三項碳費相關子法草案,明訂收費對象與計費機制。草案中首度納入高碳洩漏風險係數,碳排放可「打2折」再享優惠。環團批評,環境部簡直把減碳當大賣場下殺折扣週年慶,違背污染者付費精神,無助企業減碳。\\n草案首見 碳洩漏係數0.2 排放量直接打2折\\n草案規劃,碳費收費對象為「年排放2.5萬公噸二氧化碳當量」以上之排放大戶,但在計算排放量的時候,可以扣除起徵門檻的2.5萬公噸,也就是「超過2.5萬噸的部分」才會計費。企業將在每年4月底完成前一年度的碳盤查登錄,5月底前繳交前一年度的碳費。\\n環境部氣候變遷署署長蔡玲儀表示,起徵門檻將逐步下降至1.5萬公噸,預計到2030年起徵門檻將設為1萬公噸。\\n此外,針對鋼鐵、水泥業等具有高碳洩漏風險的產業還有「過渡轉型」措施。企業提出自主減量計畫申請後,若核准為高碳洩漏風險的產業,則能依碳洩漏風險係數享有碳費折扣,初期為0.2,也就是排放量打2折。未來係數將逐步提高至0.4、0.6,期程未定。此外,還可以享有減量後的優惠費率,但排放量就不能再扣除起徵門檻2.5萬公噸。\\n環境部指出,目前規劃的機制是要求企業申請自主減量計畫才可以打折,比起他國如歐盟無條件給予免費,已經相對嚴謹,沒有過度折扣的情形。\\n回顧近年碳費費率討論,工商團體數度喊價每噸100元以下、環保團體也一再倡議每噸500元起徵。假設訂價500元,乘上碳洩漏風險係數0.2,實際也只需繳100元,另外還可享有優惠費率。\\n企業提出自主減量計畫申請後,若核准為高碳洩漏風險的產業,則能依碳洩漏風險係數享有碳費折扣。圖片來源:擷取自環境部簡報\\n環團批環境部像下殺折扣週年慶 放走6000萬噸碳排\\n地球公民基金會、環境權保障基金會、綠色公民行動聯盟、台灣氣候行動網絡等團體發表聲明批評,碳費還沒開始徵收,環境部就先規劃「打折」,像大賣場下殺折扣週年慶,在淨零議程中喊價叫賣,污染者付費原則也淪為「污染者優惠」。\\n環保團體指出,光是排放量扣除2.5萬噸的免徵額,預估要損失37.5億元以上的碳費收入,再加上碳洩漏風險係數給予折扣,將導致300億以上的碳費收入損失,有6000萬噸以上排放量無須負擔外部成本。\\n民團聲明指出,國際碳定價施行多年,研究已證實沒有發生碳洩漏現象,打折只是讓產業逃避付費。更嚴重的是,環境部雖配合歐盟排放交易的「免費配額」給予折扣,但國內碳費費率比歐盟還低,出口至歐盟的業者,仍將面臨額外的碳關稅壓力,恐怕會轉移至下游,如中鋼就會轉嫁給下游螺絲螺帽等中小企業,可能加劇產業及社會衝擊。\\n若以鋼鐵業排放龍頭中鋼公司來看,假設碳費每噸500元,其2022年排放量須繳交97.3億元,但打了兩折之後,變成19.4億元,足足少繳77.8億餘元。且通過自主減量計畫又可以享有優惠費率,實際繳的碳費將會更少。\\n環團批減量指定目標太鬆散 不完全遵循SBTi原則\\n草案也規劃了自主減量優惠制度,企業只要能達成指定減排目標,就可以出自主減量計畫、享有優惠費率。指定目標將分兩大途徑,一種是參考科學基礎減量目標(SBTi),以2021年為基準年,設定各行業到2030年的減量目標,此種將給予較多優惠;第二種是以2030年國家自定貢獻24%為目標,設定不同排放型式的技術標竿指定削減率。\\n民間團體卻質疑,環境部沒有完全遵循SBTi原則,以鋼鐵業為例,草案中指定目標為25.2%,然而中鋼現況SBTi目標應為39%。整體目標設定過於寬鬆,無助企業減碳。\\n生在台灣,活在台灣,我們都是山與海的子民。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/232097', 'date': '2021-08-27', 'title': '學者估碳關稅衝擊台灣產值達757億 籲碳定價每噸300元起徵', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,碳定價,碳關稅,綠色和平,中研院,淨零碳排,碳價,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='學者估碳關稅衝擊台灣產值達757億 籲碳定價每噸300元起徵 | 環境資訊中心\\n歐盟將於2026年開徵碳關稅,美日韓等國也有意跟進。綠色和平與中研院學者今(27日)發表最新研究估計,台灣若無相應碳定價制度,2026年可能要支付360億元的碳關稅,衝擊的產值高達757億元。\\n目前歐盟的碳價約為每噸50歐元(約新台幣1600元),學者認為,為避免台灣遭歐盟課徵碳關稅,應該收取與歐盟碳價相當的碳費;綠色和平也建議,碳費應該從每噸300元起跳,並逐年調漲10%,以跟上國際碳定價水準。\\n逢甲大學財稅系副教授黃琝琇指出,國際碳關稅將對台灣產業造成衝擊。孫文臨攝\\n各國相繼提出碳邊境調整機制 \\xa0學者估:台灣2026將付出360億碳關稅\\n歐盟自2005年開始實施碳定價機制,並逐步擴大碳交易系統,讓產業「排碳者付費」,為避免產業轉移到碳價較低或無碳價的國家,導致「碳洩漏」的狀況,歐盟規劃自2023年起實施碳邊境調整制度(CBAM),針對輸入歐盟的產品課徵碳關稅,首波開徵對象為電力、水泥、化肥、鋼鐵、鋁等五大產業,將於2026年起開徵。\\n「未來歐盟可能持續擴大管制產業、並增加對間接排放之規範。」逢甲大學財稅系副教授黃琝琇說,更重要的是美國、日本、韓國也有極大可能在未來幾年實施碳關稅,對台灣產業的國際競爭力造成重大影響。\\n綠色和平與中研院合作的《淨零賽局來臨:國際碳邊境稅台灣衝擊報告》中,中原大學國貿系教授林師模以模型估算,若台灣未實施任何碳定價,2026年歐盟的CBAM,將衝擊水泥業、化材業、金屬業共3.6億的產值,其中水泥業出口成本可能上漲達一成,再加計美日韓的碳關稅擴大徵收範圍,最高可能衝擊達757億產值,電子電機業也可能受到影響,對台灣產業影響甚鉅。\\n林師模表示,國際市場於2026開徵碳關稅對我國產業衝擊可能高達757億。孫文臨攝\\n黃琝琇表示,歐盟CBAM明訂,若出口商產地已實施碳定價制度,歐盟將減免其稅額,避免雙課稅;若境內的碳價超越歐盟、或與歐盟相當,即可豁免碳邊境稅。「因此若要避免台灣出口產品被歐盟課徵碳關稅,必須要盡快提出與歐盟碳價格相近的碳定價制度。」\\n黃琝琇指出,目前歐盟的碳價介於每噸50~60歐元之間(約新台幣1600~2000元),碳費收取的費率也是與歐盟的碳交易價格連動,台灣實施碳定價應該參照歐盟的方式,以不同產業別陸續開徵,未來我國也能進一步實施CBAM碳關稅制度,以防止碳洩漏的狀況。\\n研究指出,若台灣不實施碳定價,將被國外課徵高額碳關稅。圖片來源:綠色和平\\n學者研究估計,台灣產業有高達757億的產值可能受到衝擊。圖片來源:綠色和平\\n「有效碳定價」優點:提高產業競爭力、促進GDP、加速減碳\\n綠色和平報告也指出,若台灣實施「有效碳定價」,除了提高產業的國際競爭力外,也可帶動消費與投資,促進國內生產毛額(GDP)成長,還能加速台灣減碳成效,有助於達成2050淨零碳排目標。\\n綠色和平專案組任鄭楚忻指出,價格是「有效碳定價」的重點,目前外傳環保署規劃每噸僅收取100元碳費,價格過低不但無法接軌國際水準,也難達到減碳誘因。雖然台灣很難直接以歐盟價格開徵碳費,但也至少要從每噸300元開徵,並逐年提高10%,才能跟上國際價格。\\n綠色和平建議,台灣應以300元開徵碳費,並逐年提高10%。圖片來源:綠色和平\\n綠色和平指出,有效碳定能加速台灣達到2050淨零碳排。圖片來源:綠色和平\\n中研院經濟研究所研究員蕭代基不諱言,碳定價制度反映生產過程的碳排成本,勢必會造成能源、物價上漲,「因此政府向產業收取的碳費要回到民間,投入節能減碳的技術研發,也可直接把錢發還給民眾。」引導產業進行低碳技術的投資,民眾轉向低碳生活消費,進而促進GDP成長。\\n鄭楚忻表示,比較分析每噸碳價100元與300元差異,100元過於便宜將導致GDP連年衰退,且碳排可能持續增長;若300元開徵並逐年調升,預估在2050年可追上國際碳價水準,長期可帶動GDP成長約1%,促進減碳達50%。\\n事實上,目前環保署的《溫管法》修正草案,沒有明定費率也沒有開徵時程,僅稱「徵收辦法由中央主管機關定之」。鄭楚忻就說,「為避免行政怠惰,具體建議應將開徵時程、費率及逐年調升條文明確入法。」\\n環保署則表示,將掌握歐盟CBAM碳含量計算方式,逐步建立我國產品碳含量查驗機制。密切關注國際減碳措施,並與國內相關產業等利害關係人進行溝通,提出適宜我國的因應作法。\\n鄭楚忻呼籲,《溫管法》修法須將碳定價具體明確入法,每噸至少300元。孫文臨攝\\n0827 綠色和平碳邊境稅臺灣衝擊報告記者會簡報by環境資訊中心公共檔案區on Scribd\\n\\n又名小鹿,經常把筆搬來搬去,喜歡潛水、爬山、旅行、音樂、文學、電影、煮咖哩、吃甜點...族繁不及備載。身而為人有點抱歉,也以鹿刻Luke為名寫字,努力辨識海中每一滴水的真名。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/234082', 'date': '2022-05-17', 'title': '環團調查:中小企業逾半數支持碳費擴大徵收 每噸至少300元', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台北市,台灣新聞,淨零碳排,碳稅,碳定價,氣候變遷因應法,中小企業,氣候法,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='環團調查:中小企業逾半數支持碳費擴大徵收 每噸至少300元 | 環境資訊中心\\n《氣候變遷因應法》已通過立法院初審,不過碳費相關法條留待黨團協商,碳費機制詳細內容未來也將會留待子法討論。綠色和平今(17)發表調查報告指出,有近八成受訪企業接受碳費擴大徵收範圍,超過五成支持未來碳費應接軌國際、合理徵收每噸至少300元。\\n綠色和平專案主任洪昇邦解讀,產業對碳管制其實有所準備,若政府擔心得罪企業,不敢訂出合理碳費,只想「虛應故事」,就像是勞師動眾打造出一個大豬公撲滿出來,最後只放幾個銅板進去,反而白忙一場。\\n綠色和平專案主任洪昇邦強調,若政府顧忌收錢會得罪企業,而不敢訂出合理的收費,就像是打造出一個大豬公撲滿,卻只放進幾個銅板,造成行政成本浪費,甚至白忙一場。圖片來源:綠色和平提供\\n陷入「碳焦慮時代」 仍有多數中小企業不了解盤查機制\\n針對碳定價,目前環保署僅公布第一波徵收對象為國內排碳大戶,許多可能受到供應鏈衝擊的中小企業也因此陷入「碳焦慮時代」。綠色和平為了釐清台灣中小製造業對淨零的期許及態度,委託時勢公司從今年3月1日至4月8日,展開台灣中小製造業[1]碳管制意向調查。\\n綠色和平今(17)發表「2022台灣中小製造業碳管制意向調查報告」,調查顯示,雖然有超過七成的中小企業認為,國際淨零潮流將對於公司整體營運帶來威脅,也有八成中小企業認同台灣應在2050年前達到淨零碳排,然而,有超過九成中小企業,仍處於正在或尚未研擬因應策略的階段。\\n減碳的第一步就是碳盤查,但有七成中小企業不瞭解碳盤查執行方式與查驗規範,其中又以工業機械類為最。調查結果也發現,整體有近六成中小企業認為,目前政府協助產業低碳轉型的輔導機制仍有不足。\\n綠色和平專案主任洪昇邦認為,雖然中小企業不在環保署碳管制的第一波名單內,但供應鏈的要求以及國際碳邊境稅的衝擊依然存在,政府在碳盤查相關的資訊傳遞上「仍有極大努力空間。」\\n綠色和平今(17)發表「2022臺灣中小製造業碳管制意向調查報告」,結果發現許多受訪企業對於碳盤查細節仍不太了解。圖片來源:擷自線上記者會\\n碳費開徵在即 半數受訪企業接受每噸300元碳費\\n碳費訂定一直是產業界關心的重點,然而環保署預計最快將在2024年開徵碳費,有關碳費率的定價卻仍無具體數字,僅強調將留待子法討論。\\n此次調查中,3/4的中小企業表示不了解碳費徵收的相關政策,不過還是有近六成企業認同台灣應徵收碳費,以有效降低企業碳排、加速產業轉型。\\n目前世界各國碳費最高的是瑞典,每噸新台幣3000至4000元,歐盟的碳定價則是每噸1500至2000元,而美國(加州)及韓國等國約為每噸800元。至於鄰近的新加坡,目前雖然收取每噸100元的較低費率,不過將在2024年調漲碳費至每噸500元、2030年則加倍至每噸1000元。\\n調查顯示,有57.5%的受訪中小企業認為,我國碳費應跟上國際水準,才能保有產品競爭力;有近半數可接受政府未來每噸碳費合理徵收300元,更有四成接受最高至900元。台灣化學產業協會秘書長曾繁銘建議,政府的碳定價制定策略必須參考韓國、中國及新加坡等鄰近競爭對象,避免台灣廠商受到不平等競爭。\\n對此,洪昇邦說明「產業對碳管制其實是有所準備的」,並非像過去經濟部所言,產業在徵收碳費的討論上「完全無法溝通」。他說,若政府徵收碳費只想「虛應故事」,擔心得罪企業而不敢訂出合理碳費,「就像是勞師動眾打造出一個大豬公撲滿出來,最後只放幾個銅板進去,反而徒增行政成本,白忙一場。」\\n綠色和平調查結果顯示,超過五成受訪企業支持碳費接軌國際,徵收每噸至少300元。圖片來源:擷自記者會簡報\\n洪昇邦指出,中小企業主要是將碳費視為投資一個氣候保險,期望政府能妥善利用這筆共同投資幫助企業轉型,提供低碳技術、產業輔導、充足的綠電以及碳盤查行政管理的支持。曾繁銘也認為,所收費用應協助業者執行減碳措施,例如更新設備、建置再生能源或取得綠電,才能有效達到淨零碳排的目標。\\n洪昇邦還建議,《氣候法》內應增設院級監管單位及成效審核機制,加入碳費監管機制才能確保全套碳管制政策合理且符合產業轉型需求。\\n另外,化學產業在國際碳邊境稅中被列為重點管制對象,曾繁銘今預告,9月1日將舉行台灣化學產業高峰論壇,將邀請國內化學產業上下游業者,共同發布淨零碳排宣言。他表示,化學產業界目前正積極掌握世界永續趨勢、調查業者現況並擬定淨零碳排策略,希望能回應消費者對於產品永續的要求。\\n註釋\\n[1]中小企業:綠色和平此次調查對象的中小企業,指依法辦理公司登記或商業登記,實收資本額1億元以下,或經常僱用員工數未滿200人之事業。企業名單來源為中華電信黃頁電話簿。\\nThings will go well.'),\n", " Document(metadata={'url': 'https://enews.moenv.gov.tw/Page/3B3C62C78849F32F/002aed50-1fa5-43b9-81e6-196dcde7e57e', 'date': '2023-12-29', 'title': '完成碳費收費辦法草案 展開社會溝通', 'category': '新聞發布', 'search_kw': '盤查', 'related_kw': None, 'official_website_source': 'https://enews.moenv.gov.tw/'}, page_content='完成碳費收費辦法草案 展開社會溝通\\n為如期推動碳費徵收,環境部已於112年12月1日訂定發布「碳費費率審議會設置要點」,現提出碳費收費辦法草案(下稱收費辦法),規定年排放量達2.5萬公噸二氧化碳當量的電力業及大型製造業為收費對象,自113年開始,碳費收費對象的溫室氣體年排放量就會被納入計價,為我國邁入排碳有價時代揭開序幕。\\n為如期推動碳費徵收,環境部已於112年12月1日訂定發布「碳費費率審議會設置要點」,現提出碳費收費辦法草案(下稱收費辦法),規定年排放量達2.5萬公噸二氧化碳當量的電力業及大型製造業為收費對象,自113年開始,碳費收費對象的溫室氣體年排放量就會被納入計價,為我國邁入排碳有價時代揭開序幕。\\n環境部表示,為達成國家溫室氣體長期減量目標及各階段管制目標,該部依據氣候變遷因應法(下稱氣候法)第28條規定,得分階段對排放溫室氣體之排放源徵收碳費,並於收費辦法訂定收費對象、計算方式、徵收方式、申報、繳費流程、繳納期限、繳費金額不足之追繳、補繳及收費之排放量計算方法等相關規定。\\n環境部表示,為達成國家溫室氣體長期減量目標及各階段管制目標,該部依據氣候變遷因應法(下稱氣候法)第28條規定,得分階段對排放溫室氣體之排放源徵收碳費,並於收費辦法訂定收費對象、計算方式、徵收方式、申報、繳費流程、繳納期限、繳費金額不足之追繳、補繳及收費之排放量計算方法等相關規定。\\n在收費對象部分,收費辦法規劃以應盤查登錄及查驗溫室氣體排放量之排放源,且全廠(場)之直接排放及使用電力之間接排放,其溫室氣體年排放量合計值達2.5萬公噸二氧化碳當量以上的電力業及製造業為收費對象,前述對象需依「溫室氣體排放量盤查登錄管理辦法」規定,將113年全廠溫室氣體排放量,於114年4月底前完成盤查登錄,再依收費辦法規定於5月底前採網路申報方式申報碳費,並至指定金融機構繳納費用。\\n在收費對象部分,收費辦法規劃以應盤查登錄及查驗溫室氣體排放量之排放源,且全廠(場)之直接排放及使用電力之間接排放,其溫室氣體年排放量合計值達2.5萬公噸二氧化碳當量以上的電力業及製造業為收費對象,前述對象需依「溫室氣體排放量盤查登錄管理辦法」規定,將113年全廠溫室氣體排放量,於114年4月底前完成盤查登錄,再依收費辦法規定於5月底前採網路申報方式申報碳費,並至指定金融機構繳納費用。\\n環境部補充說明,收費對象在計算碳費時,需將前一年度的溫室氣體排放量乘上中央主管機關公告的收費費率,就可算出應繳納的碳費金額,另外,電力業申報碳費可檢具電力消費之排放量證明文件於申報碳費時扣除其排放量。對於碳費的查核、補繳及追繳,收費辦法也授權主管機關執行碳費查核作業時,可通知事業限期提供碳費申報相關資料,經查核發現有未繳納或未足額繳納時,應向收費對象追繳或通知其限期補繳碳費。\\n環境部補充說明,收費對象在計算碳費時,需將前一年度的溫室氣體排放量乘上中央主管機關公告的收費費率,就可算出應繳納的碳費金額,另外,電力業申報碳費可檢具電力消費之排放量證明文件於申報碳費時扣除其排放量。對於碳費的查核、補繳及追繳,收費辦法也授權主管機關執行碳費查核作業時,可通知事業限期提供碳費申報相關資料,經查核發現有未繳納或未足額繳納時,應向收費對象追繳或通知其限期補繳碳費。\\n氣候法第30條也訂有可以國內減量額度申請排放量扣減,國內減量額度包含自願減量專案及抵換專案取得之減量額度與先期專案減量額度,目前規劃先期專案減量額度僅可使用於113年及114年之排放量扣減。另外,各類型專案之減量額度扣減比率及上限則尚待與各界討論確認後訂定。另外,氣候法第27條亦訂有使用國外減量額度可以有一定比例扣抵碳費的規定,目前參考國際碳費抵扣的相關作法,明文規定用於抵扣碳費排放量的國外減量額度,需經中央主管機關認可後方可使用,且設定其上限不得超過需收費排放量的5%。另外,收費辦法也將因天災或其他不可抗力事由展延規定、資料保存年限、碳費溢繳退還、停歇業結算及委託授權專責機構等行政作業規範納入條文之中。\\n氣候法第30條也訂有可以國內減量額度申請排放量扣減,國內減量額度包含自願減量專案及抵換專案取得之減量額度與先期專案減量額度,目前規劃先期專案減量額度僅可使用於113年及114年之排放量扣減。另外,各類型專案之減量額度扣減比率及上限則尚待與各界討論確認後訂定。另外,氣候法第27條亦訂有使用國外減量額度可以有一定比例扣抵碳費的規定,目前參考國際碳費抵扣的相關作法,明文規定用於抵扣碳費排放量的國外減量額度,需經中央主管機關認可後方可使用,且設定其上限不得超過需收費排放量的5%。另外,收費辦法也將因天災或其他不可抗力事由展延規定、資料保存年限、碳費溢繳退還、停歇業結算及委託授權專責機構等行政作業規範納入條文之中。\\n環境部為完備碳定價相關機制,強化減碳之經濟誘因,已陸續訂定氣候變遷因應法相關子法,包括今(112)年5月31日完成「應盤查登錄及查驗溫室氣體排放量之排放源」公告,9月14日發布「溫室氣體排放量盤查登錄及查驗管理辦法」、10月5日發布「溫室氣體認證機構及查驗機構管理辦法」、10月12日發布「溫室氣體排放量增量抵換管理辦法」及「溫室氣體自願減量專案管理辦法」,以碳費徵收為核心,配合盤查登錄、認證暨查驗管理、自願減量及增量抵換等多元配套措施,擴大各界共同參與淨零減碳工作。\\n環境部為完備碳定價相關機制,強化減碳之經濟誘因,已陸續訂定氣候變遷因應法相關子法,包括今(112)年5月31日完成「應盤查登錄及查驗溫室氣體排放量之排放源」公告,9月14日發布「溫室氣體排放量盤查登錄及查驗管理辦法」、10月5日發布「溫室氣體認證機構及查驗機構管理辦法」、10月12日發布「溫室氣體排放量增量抵換管理辦法」及「溫室氣體自願減量專案管理辦法」,以碳費徵收為核心,配合盤查登錄、認證暨查驗管理、自願減量及增量抵換等多元配套措施,擴大各界共同參與淨零減碳工作。\\n環境部指出,依據氣候法第29條規定,碳費徵收對象因轉換低碳燃料、採行負排放技術、提升能源效率、使用再生能源或製程改善等溫室氣體減量措施,能有效減少溫室氣體排放量並達中央主管機關「指定目標」者,可提出自主減量計畫申請核定「優惠費率」,透過不同費率的設計,以加大加速大排放源的實質減量。另考量不同行業別之減量空間不同,為利後續碳費制度順利推行,該部自今(112)年7月起已與石化、人纖、造紙、絲綢印染、水泥、鋼鐵、半導體、電子業、食品業等公會就碳費自主減量計畫及指定減量目標進行研商座談,各公會所提建議,將作為本部「指定目標」規劃設計之參考。\\n環境部指出,依據氣候法第29條規定,碳費徵收對象因轉換低碳燃料、採行負排放技術、提升能源效率、使用再生能源或製程改善等溫室氣體減量措施,能有效減少溫室氣體排放量並達中央主管機關「指定目標」者,可提出自主減量計畫申請核定「優惠費率」,透過不同費率的設計,以加大加速大排放源的實質減量。另考量不同行業別之減量空間不同,為利後續碳費制度順利推行,該部自今(112)年7月起已與石化、人纖、造紙、絲綢印染、水泥、鋼鐵、半導體、電子業、食品業等公會就碳費自主減量計畫及指定減量目標進行研商座談,各公會所提建議,將作為本部「指定目標」規劃設計之參考。\\n環境部也呼籲,我國自113年起邁入排碳有價的時代,事業應該優先建立溫室氣體排放量盤查能力,掌握自身排放量及重點排放源,並積極規劃採行實質減量措施,環境部也已訂於113年1月3日邀集民間團體及經濟部共同就碳費徵收相關機制進行交流討論,以期早日凝聚共識,加快碳費相關子法之訂定,引領我國產業朝低碳淨零方向轉型,以利國家減量目標之達成。\\n環境部也呼籲,我國自113年起邁入排碳有價的時代,事業應該優先建立溫室氣體排放量盤查能力,掌握自身排放量及重點排放源,並積極規劃採行實質減量措施,環境部也已訂於113年1月3日邀集民間團體及經濟部共同就碳費徵收相關機制進行交流討論,以期早日凝聚共識,加快碳費相關子法之訂定,引領我國產業朝低碳淨零方向轉型,以利國家減量目標之達成。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/234045', 'date': '2022-05-11', 'title': '我們與碳費的距離:碳定價多少才合理?', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '能源轉型,台灣新聞,碳費,氣候法', 'official_website_source': 'https://e-info.org.tw/'}, page_content='我們與碳費的距離:碳定價多少才合理? | 環境資訊中心\\n圖片來源:環境權保障基金會提供\\n全球已有131國、524城市宣示淨零目標,減緩氣候變遷、落實減碳不再是談判桌上不情願的攻防,而是必須達成的目標。台灣於去(2021)年宣布2050年達成淨零,加入這場減碳競賽。\\n預計今年進入立法程序的《氣候變遷因應法》草案已經納入碳費政策,透過排碳者付費,加速減碳行動。碳費應該收多少?這一點預計將是立法過程中攻防的重點之一。\\n目前國內碳費的討論落在每公噸新台幣30元至300元間,遠不及世界銀行40至80美金(約新台幣1140至2280元)的建議費率。碳價政策第一線影響的是企業,然而,當成本轉嫁售價後,民眾亦會受到影響,此外,高碳產業逐步式微下,產業員工可能面臨轉業難題。極端氣候更是無人能置身事外。碳費與民眾的距離比想像更近。\\n碳關稅將上路 國際碳費逐步墊高難回頭\\n企業競爭力與減緩氣候變遷是否在天平的兩邊?一噸碳多少錢才能促成減碳?鄰近的新加坡於2019年開始徵收碳稅,起徵價為每公噸5星幣(約新台幣104元)。這數字一度成為國內碳費水準參考值。\\n根據中華民國全國工業總會去年的調查報告,47%的企業即認為碳費應落在每公噸100元。不過,今年2月新加坡宣布2024年起碳稅將一舉調高四倍,達25星幣(約新台幣520元)。\\n台大社會系副教授劉仲恩。圖片來源:環境權保障基金會提供\\n環保署委託倫敦政經學院所進行的估算,建議國內碳費落在10美金(約新台幣300元),但這建議值並未寫入環保署所提的《氣候變遷因應法》草案版本。立委草案版多未明定碳價,僅三個版本分別列出30元、300元、10美元,均遠低於國際水準。\\n據世界銀行評估,要讓碳定價「有感」並促成巴黎協定降低2°C的目標,每噸碳排應收取40~80美元。收取固定碳費的國家大多逐步提高費率,並向國際水準看齊,主因是歐盟預計2026年上路的碳邊境調整機制(CBAM,可簡單理解為碳關稅)。\\nCBAM規範輸歐的五大類產品若在國內沒繳碳費、或碳費低於歐盟水準者,需補繳碳費給歐盟[1]。預期CBAM實施後,產品類別會再逐步擴大,其他國家地區也會開始類似機制。\\n歐盟的碳價格則隨市場浮動,近期(今年3月)水準落在每公噸80歐元左右(約新台幣2500元)。對出口為導向的台灣來說,國內如不收取碳費,最後仍要繳錢給其他國家。恐怕這才是國內迅速達成碳費政策共識的主因。\\n國內、國際碳費參考價格[2]。製表:環境權保障基金會\\n碳費的主觀抉擇 你的想法決定氣候未來\\n環境權保障基金會於3月29日辦理氣候淨零系列講座:「我與碳費的距離」,邀請政大國際經營與貿易學系教授施文真、台大社會系副教授劉仲恩與民眾展開一場氣候對話。\\n環境權保障基金會研究員倪茂庭認為,費率設計應確保碳費能定期提升,對準國際淨零目標下應有的碳費水準(2030年時每公噸3000元)。此外,允許產業提出自願減量計畫後申請減量額度的規劃上,必須嚴格減量額度的使用上限與實質減碳的效益,避免排放源迴避減碳責任。\\n在諸多碳費參考價中,應參考哪個國家,還是從國內減碳成本出發?施文真說明,政策溝通不能只重論理完整性,也必須考量政治接受度。比起參考鄰國或在漫天開價中妥協,他更期待政府用通盤思考的論點去說服大眾。\\n劉仲恩也認為,藉由氣候科學或經濟學固然可得出客觀的碳價格,但數字的背後其實是主觀的選擇。台灣減碳少一些,可能別的國家就必須承擔多一些;現在減碳少一點,可能下一個世代就要付出更高的代價。\\n碳費難以計算,有企業提議參考國外碳交易制度,讓市場決定價格。除了考量國內市場規模有限,劉仲恩提醒,企業的投資經營需要明確的價格信號。過去歐洲碳價曾一度下跌,看似對企業有利,但已大筆投資減碳的公司反而蒙受損失。再者,歐盟碳價近年居高不下,期待碳價再次崩落,並不切實際。\\n另一項國際作法則是藉由購買其他地區或企業減碳的額度(碳權)以抵減企業的排碳。施文真表示,碳權計算多有爭議,有些碳權並沒有聲稱的減碳量,甚至涉及環境破壞,購買這類碳權反而傷及公司聲譽。他建議,用嚴謹的方法掌握實際碳排量,並務實地執行減碳計畫,才是企業淨零的長遠之計。\\n政大國際經營與貿易學系教授施文真。圖片來源:環境權保障基金會提供\\n收取碳費之後 落實減碳的挑戰與契機\\n收取碳費僅是第一步,如何藉此降低碳排、促成減碳技術發展、彌平因減碳而受影響的大眾,才是政策的目標。\\n針對企業呼籲碳費「取之於企業、用之於企業」,倪茂庭持反對意見。他表示,收取碳費屬「污染者付費」,碳費運用應回歸社會,而非返回污染者。\\n倪茂庭提醒,碳費是淨零轉型的重要工具,促成減碳的同時,也應照顧可能受到衝擊的弱勢族群,例如,因高碳產業轉型而失業的員工,或用在公民參與,讓一般民眾也加入低碳轉型的行列。\\n碳費不是一種對企業的懲罰,劉仲恩期望外界更積極地看待碳費政策,這會是巨大的低碳轉型商機,也是一場全世界的減碳競賽。各國的碳費水準逐步跳升,除了反映物價與通膨,真正要展現的是國家與企業贏得競賽的強烈企圖心。\\n圖片來源:環境權保障基金會提供\\n註釋\\n[1]歐盟CBAM對象是產品的碳足跡,不同於國內討論碳費時所計算的企業排碳量。在CBAM規則中,進口商須先購買CBAM憑證,再以憑證抵減,非直接繳交碳費。\\n[2]各國碳費、碳稅、碳交易的徵收對象、碳排範圍、計算方式均不相同,以上價格僅供參考,無法完全反應碳定價的水準。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/239190', 'date': '2024-05-31', 'title': '環團政院前抗議 諷碳費折扣像賣場「大特價」籲取消優惠', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,碳費,碳定價,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='環團政院前抗議 諷碳費折扣像賣場「大特價」籲取消優惠 | 環境資訊中心\\n環境部碳費子法於4月底預告,規劃提供企業過渡轉型優惠,部分產業碳費「2折」等引發爭議。昨(30)日環保團體在行政院前擺出購物手推車、特價標語,諷刺環境部給予企業太多折扣,猶如賣場的大拍賣。環團稱,環境部到處放水,像是一個充滿破洞的水桶,恐怕最後會變「竹籃打水一場空」,呼籲新內閣檢討草案機制。\\n碳費處處放水給折扣 環團批:竹籃打水一場空\\n我國碳費進展受到高度關注,環境部在4月底預告「碳費收費辦法」、「自主減量計畫管理辦法」及「碳費徵收對象溫室氣體減量指定目標」三項碳費相關子法草案,提供碳排大戶種種優惠,引發民間團體不滿。\\n數個環保團體昨日於行政院前召開記者會,向總統賴清德及行政院長卓榮泰的「AI內閣」呼籲,正視當前碳費子法草案給予企業折扣優惠的亂象,提出取消取消5萬噸免徵額、高碳洩漏風險產業「2折優惠」等建議。\\n台灣氣候行動網絡研究員林雨璇說明,環境部的草案針對高碳洩漏風險產業,除優惠費率外,還有碳洩漏風險係數2折折扣,企業可以得雙重折扣;環境部亦未說明碳洩漏風險係數如何計算而來,外界無從評估其合理性。此外,草案贈與2.5萬噸的免徵額,未能落實污染者付費原則,會增加行政成本,變相補貼廠商,削弱碳費成效。\\n環團估算,將鋼鐵、水泥、石化視為高碳洩漏風險產業,會導致約4700萬噸的排放量不需承擔任何成本,造成碳費235億的損失。林雨璇批評,環境部到處放水,像是一個充滿破洞的水桶,恐怕最後會變「竹籃打水一場空」。\\n只要交漂亮的報告書? 企業減量未達目標不罰、不追繳衍生利息\\n台灣氣候行動網絡總監趙家緯表示,倫敦政經學院今年3月的台灣碳費制度研究報告指出,優惠費率將侵蝕台灣氣候政策的可信度。目前子法草案提出優惠費率的指定目標,也不符合科學基礎目標(SBT)。以鋼鐵業為例,草案指定目標為25.2%,然而根據中鋼現況,其SBT應為39%,才符合淨零路徑\\u200b\\u200b。\\n綠色公民行動聯盟專員沈宜臻也提醒,目前規劃企業提自主減量計畫可享優惠費率,但企業未達成減量卻毫無罰則,也無需追繳衍生利息,應設計追繳罰則制度,並完整公開自主減量計畫,供全民監督。否則欠缺監督方法,企業會浮濫提交漂亮的報告書,卻無實質成績。\\n環境部:無過度折扣情形 企業自主減量有助國家減碳進度\\n行政院能源及減碳辦公室主任蘇金勝出面接下陳情書,表示有確實收到環團的意見,目前草案仍在預告期間,下周也將辦理與環保團體的座談會,持續蒐集各方的意見。\\n環境部發布新聞稿說明,碳費目的是加速減碳、促使產業轉型,並非增加國家財政收入。草案已參考國際間碳定價機制,歐盟等國為避免碳洩露,給予免費配額,相較之下我國設計更為嚴謹,並無過度折扣情形。\\n目前草案規劃兩種減量指定目標,其一是參考SBT精神,目標2030年減量42%;第二種是依排放型式,訂定技術標竿指定削減率。推估碳費開徵後搭配自主減量計畫等措施,2030年可減少約24%的排放量,有助達成2030年國家自定貢獻。自主減量計畫未確實執行者,將追繳費率差額,如未完成改善,將廢止已核定之自主減量計畫。\\n生在台灣,活在台灣,我們都是山與海的子民。'),\n", " Document(metadata={'url': 'https://esg.gvm.com.tw/article/41565', 'date': '2024-01-02', 'title': '台灣碳費收費如何算?申報日期、計算與徵收方式一次看', 'category': '趨勢新知', 'search_kw': '碳費', 'related_kw': '碳費,碳排放', 'official_website_source': 'https://esg.gvm.com.tw/'}, page_content='台灣碳費收費如何算?申報日期、計算與徵收方式一次看\\n為順利徵收碳費,環境部2023年12月29日公布收費辦法草案,明定徵收對象為電力業及大型製造業,並公布碳費計算及排放量扣減方式,希望2024年第1季收費辦法定案,也宣告2024年起「排碳有價」。\\n環境部在2023/12/29發布新聞稿對外公布部內草擬的碳費收費辦法草案,除明定碳費徵收對象外,也將計算方式、徵收方式、申報、繳費流程、繳納期限等一一說明,宣告從民國113年開始,台灣將邁入排碳有價時代,後續也將與各界溝通規劃的收費辦法內容,盼凝聚共識。\\n本文根據環境部草擬的收費辦法整理關鍵重點,盼讓企業能更了解國內碳費如何徵收。\\n碳費徵收對象\\n屬應盤查登錄及查驗溫室氣體排放量排放源,且全廠(場)的直接排放及使用電力的間接排放,溫室氣體年排放量合計值達2.5萬公噸二氧化碳當量以上的電力業及製造業為收費對象。\\n環境部氣候變遷署副署長黃偉鳴告訴中央社記者,根據過去盤點,粗估約有500家企業為徵收對象,但實際徵收家數仍須看企業碳排是否有達標。\\n碳費申報繳納時程\\n「從民國113年開始,碳費收費對象的溫室氣體年排放量就會被納入計價」。\\n根據規劃,碳費徵收對象必須從民國114年的每年5月底前,依企業前一年度1月1日至12月31日的溫室氣體排放量,依照公告收費費率自行計算應繳納費額,並填具碳費申報書及繳款單,將前一年度的碳費自行繳納至中央主管機關指定金融機構代收專戶後,以網路傳輸方式,向中央主管機關申報。但報經中央主管機關同意者,得以書面方式申報。\\n碳費計算方式\\n收費對象在計算碳費時,須將前一年度的溫室氣體排放量乘上中央主管機關公告的收費費率,就可算出應繳納的碳費金額,碳費應繳費額的計算取至整數,小數點後無條件捨去。而電力業申報碳費可檢具電力消費的排放量證明文件於申報碳費時扣除其排放量。\\n另外,若企業依法向中央主管機關提出自主減量計畫並達指定目標者,也可適用中央主管機關核定優惠費率。\\n黃偉鳴表示,碳費收費費率以及優惠費率後續將待碳費審議委員會於2024年第1季時決定。\\n減量額度扣減碳費\\n企業依規定申請以減量額度扣除碳排排放量者,應於4月底前,向中央主管機關提出使用額度帳戶內減量額度申請,經中央主管機關核准並註銷減量額度後,才可於5月底前併同碳費申報作業扣除排放量。\\n而國內減量額度包含自願減量專案及抵換專案取得的減量額度與先期專案減量額度,目前規劃先期專案減量額度僅可使用於民國113年及114年的排放量扣減,而各類型專案的減量額度扣減比率及上限則尚待與各界討論確認後訂定。\\n至於國外減量額度,目前參考國際碳費抵扣的相關作法,明文規定用於抵扣碳費排放量的國外減量額度,須經中央主管機關認可後方可使用,且設定其上限不得超過須收費排放量的5%。\\n環境部表示,台灣將從民國113年起邁入排碳有價的時代,企業應優先建立溫室氣體排放量盤查能力,掌握自身排放量及重點排放源,並積極規劃採行實質減量措施。\\n黃偉鳴也說,碳費收費辦法目前僅是草擬階段,只是希望讓外界先了解環境部的規劃,後續將展開社會溝通,預計113年1月3日邀集民間團體及經濟部共同就碳費徵收相關機制進行交流討論,期盼早日凝聚共識,希望明年第1季收費辦法定案。\\n本文轉載自2023.12.29「中央社」,僅反映作者意見,不代表本社立場。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/236907', 'date': '2023-06-02', 'title': '碳稅聯盟今成立 草擬民間版「碳稅條例」主張源頭課徵、以價制量', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '能源轉型,台灣新聞,減碳費,碳費,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='碳稅聯盟今成立 草擬民間版「碳稅條例」主張源頭課徵、以價制量 | 環境資訊中心\\n年初《氣候法》三讀通過,環保署目前正在研擬碳費相關子法,預計2024年開徵碳費。台灣蠻野心足生態協會等民間團體今(2日)宣布成立碳稅聯盟,主張應盡快立法從源頭課徵碳稅,避免碳費專款專用於補助業者減碳設備,無法接軌歐盟;也應成立氣候基金,將碳稅收入用於償還碳債、補貼因淨零轉型受衝擊的企業及個人。\\n民間團體今(2日)宣布成立碳稅聯盟。圖片來源:碳稅聯盟\\n排碳大戶僅佔全國半數排放量 源頭徵收讓全民負起責任\\n碳稅聯盟正研擬民間版碳稅條例草案,三大原則包括源頭課徵、以價制量、財政中立,並將徵得的碳稅用於調適研發、償還碳債及返還人民。\\n荒野保護協會理事長李騏廷指出,環保署計畫第一階段針對289家排碳大戶課徵碳費,然而《氣候法》規定,由電力公司生產的電力,供消費用電的排碳量不必繳納碳費,也就是說事業用電造成的碳排由事業負擔,不會轉由發電廠承擔。\\n中研院經濟研究所兼任研究員蕭代基進一步說明,需繳納碳費的排碳大戶排放量僅佔全國總排放量一半,剩下的住宅、商辦大樓、中小企業、交通運輸等碳排都無需繳費,預期減碳效果有限。國外採直接向生產電的電力公司徵收碳稅,電力公司再將費用轉嫁至電費上,不僅簡化徵收規則,也能以價制量加速減碳。\\n蕭代基也提到,目前我國碳費制度不僅有優惠費率,還讓排放源業者申請補貼,違反歐盟碳邊境税(CBAM)第九條規定,我國產品出口歐盟恐怕不能將繳交的碳費抵減碳邊境税。舉例來說,若每噸碳費定價為300元,業者因優惠或補貼而只繳納100元,出口到歐盟也僅能抵減100元碳邊境税,而非定價的300元。\\n碳稅收入成立氣候基金 公平分配各部會、企業、人民\\n碳稅聯盟也呼籲成立「氣候基金」,將碳稅收入用於償還碳債、返還人民及調適研發。蕭代基指出,現行溫管基金多用於補貼排放者,然而排放者若減少排放就可減低碳稅支出,「而且減碳是責任不是做善事」,不應再額外取得補貼。\\n蕭代基說,當前世代製造的溫室氣體會遺留下一代,需避免碳債留子孫;也應參考北歐、加拿大等國做法,將碳稅收入返還人民,提高國民可支配所得,「不會因為課徵碳稅而變得比較窮」;最後則是投入調適研發工作,以達淨零排放目標。\\n台大風險社會政策研究中心主任周桂田指出,雖溫管基金已納入公正轉型項目,但環境部缺乏制度性統籌、協調各利害關係人的機制,建議回歸碳稅立法,碳稅收入由財政部直接進行預算統籌分配並建立氣候基金,公平分配給各部門、產業及社會。\\n立委籲貨物稅、汽燃稅整併為綠色稅制接軌歐盟\\n立法徵收碳稅是否代表加稅?時代力量立委陳椒華強調,收碳稅並非加稅,而是以「排碳者付費」原則計算汽燃稅等相關稅務,讓民眾了解何種消費模式會造成較多碳排。\\n民進黨立委高嘉瑜認為,應將各項與能源相關的稅費整合為能源稅、碳稅等綠色稅制。他舉例,目前汽燃費採隨車徵收,背離隨油徵收的「使用者付費」原則,也無法鼓勵民眾節能減碳。另外,財政部聲稱油氣類貨物稅已具能源稅性質,然而現行貨物稅條例並非以減碳為目的,顯然名實不符。\\nThings will go well.'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/238301', 'date': '2024-01-05', 'title': '碳費費率最快第一季拍板 環境部先釋初步規劃、收費對象、計算公式', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,碳費,碳權,溫室氣體,氣候法,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='碳費費率最快第一季拍板 環境部先釋初步規劃、收費對象、計算公式 | 環境資訊中心\\n我國今年啟動開徵碳費,排放大戶將以2024年的排放量為依據,在2025年繳交第一筆碳費。然而碳費怎麼收?收多少?環境部3日首度拋出碳費計算公式,還有收費對象、碳權抵扣碳費、優惠費率等初步規劃,其中,「扣減2.5萬公噸排放量再計算碳費」的算法飽受爭議,環保團體批評,此舉形同給予業者免費排碳配額。\\n目前環境部僅釋出法案架構,還待草案預告。氣候署署長蔡玲儀表示,相關辦法及碳費費率,都將在今年第一季拍板。\\n環境部3日辦理「碳費徵收子法推動進度交流座談會」。攝影:陳昭宏\\n一、碳費向誰收? 碳費怎麼算?\\n根據氣候署簡報,碳費收費對象要符合兩要件,其一是被認定為「事業應盤查登錄及查驗溫室氣體排放量之排放源」(多為電力及大型製造業),其二是「直接排放與間接用電排放合計達2.5萬公噸二氧化碳當量」。\\n碳費計算方式,則暫定為排放量扣減2.5萬公噸,再乘以碳費費率,也就是排放2.49萬噸不用繳費、排2.51萬噸只要繳0.1萬噸的碳費。\\n氣候署表示,如此訂定是避免只設2.5萬噸的門檻,會產生「2.51萬噸要全繳、2.49萬噸全不繳」的不公平狀況。環境部次長施文真表示,應盤查對象約佔我國75%排放量,但電力業還要扣除消費性電力排放,扣除後,涵蓋我國55至60%排放量。\\n至於扣除2.5萬公噸後再計算,實際涵蓋率為何?氣候署表示還要確認。\\n環境部次長施文真。攝影:陳昭宏\\n二、碳權如何扣抵碳費?\\n根據初步規劃,國內和國外的碳權都能用於扣抵碳費。國內碳權包括「自願減量專案」、「抵換專案」,以及環保署多年前已核發6100萬噸碳權的「先期專案」。國外碳權則參考新加坡做法,限制扣抵額度不能超過5%。至於有哪些國外額度可使用?氣候署表示,將另訂「認可準則」。\\n此外,「先期專案」的碳權扣抵僅限2024、2025年,蔡玲儀解釋,因為當時並非根據嚴謹方法學核發,但他強調,所有碳權扣抵碳費都非「1比1」,氣候署後續將訂出各種碳權的扣抵比率。\\n三、企業減碳如何獲得優惠?\\n依《氣候法》,業者提出「自主減量計畫」(包括轉用低碳燃料、採行負碳技術、提升能源效率、使用再生能源、改善製程)達一定「指定目標」就能獲得優惠費率。氣候署表示,目前將基準年數據訂為2019至2023年的排放量平均值,目標年則為2030年,但能讓業者獲得優惠費率的實際「指定目標」是多少,仍還在研商。\\n由於指定目標應與國家減量目標相符,外界討論可能連結2022年底公布的2030年「國家自訂貢獻」(NDC),也就是減碳24±1%;或是《氣候法》規定的「第三階段管制目標」(2026至2030年)。但氣候署強調,會依產業別訂出指定目標,「不會是單一數字」。\\n四、碳費辦法、費率時程? 氣候署:第一季塵埃落定\\n針對碳費相關時程,蔡玲儀表示都還需要社會溝通,希望在第一季公告上路「碳費收費辦法」及「碳費指定減量目標及自主減量計畫審核辦法」。至於碳費費率,則由「碳費審議會」訂定,同樣會在第一季揭曉。\\n探索矇矓中開展的世界、滲透身體的網,與身體和環境結盟,共同行動。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/237491', 'date': '2023-08-24', 'title': '氣候署:今年底碳交易規範到位2025年徵收第一筆碳費', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,碳費,碳權,碳邊境調節機制,碳交易,碳定價,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='氣候署:今年底碳交易規範到位 2025年徵收第一筆碳費 | 環境資訊中心\\n環境部22日成立,新設四署一院隨之揭牌。氣候變遷署首任署長蔡玲儀公布最新碳費時程,我國將於2024年初確立碳費費率、2024年盤查碳排、2025年依盤查結果開徵碳費。也就是說,全台約500多家列管業者將於2025年繳交第一筆碳費。對此綠色和平氣候能源專案主任秦書淮批評,碳費推動已兩度延後,若以每噸300元計,晚一年徵收就減少將近600億元的碳費收入,不利推動淨零。\\n氣候署署長蔡玲儀。圖片來源:環境部提供\\n明年初碳費子法上路 2025年開徵\\n全台500多家年排放2.5萬噸的排放源,將在2025年繳交第一筆碳費。蔡玲儀強調,費額將依2024年盤查出的排放量計算,時程規劃上能接軌2026年歐盟碳邊境調整機制(CBAM),在台灣繳過碳費,就能扣減歐盟碳關稅。\\n《氣候法》剛通過時,環境部曾表示2024年起開徵碳費,綠色和平氣候能源專案主任秦書淮批評,碳費徵收其實已兩度延後,環境部最早說2023年要徵碳費;若以每噸300元計,「只要晚一年徵收,就會減少將近600億元的碳費收入」。\\n氣候署23日以新聞稿回應,2025年業者繳交第一筆碳費是針對「2024年碳排」,並不算延後。\\n氣候署:碳費不會一刀切 各別產業「量身訂定」\\n環境部原預計上半年預告12項《氣候法》關鍵子法,但截至目前僅完成一項公告、四項預告,碳費相關子法更是沒有動靜。蔡玲儀則強調,「碳費並不是個單一的數字」,7月已和工業局、工總及各產業公協會商議碳費徵收的原則,9月會再召開座談會,年底將預告草案。目標明年初正式公告施行,並召開碳費審議會,讓費率在第一季定案。\\n《氣候法》規定,碳費徵收對象減排達環境部「指定目標」,可提出自主減量計畫,適用優惠費率。同法的立法說明指出,此指定目標需與國家減排目標一致。對此外界認為可參考我國2030年國家自訂貢獻(NDCs)訂定「24%±1%」目標。不過蔡玲儀指出,不同產業的減碳時程、可減量空間、製程其實有很大差異,指定目標不會跟著國家目標「一刀切」。\\n氣候變遷署在22日揭牌。圖片來源:環境部提供\\n蔡玲儀解釋,指定目標應是「複雜的多指標」,比如半導體業主要是用電及製程含氟氣體排放,就可能規定業者須減少一定比例用電碳排、並破壞一定比例含氟氣體,才能獲得優惠費率。此外,我國還訂有「溫室氣體階段管制目標」,第三期須在2024年提出、2026年實施,因此仍會要求業界整合意見,提出2030年的減碳目標。\\n蔡玲儀說,「現在最需要花時間談的(碳費子法),就是自主減量計畫」。他並透露,六大部門的2030年目標會在今年底提出,製造部門有望比24%±1%還要再高。\\n碳權交易到位等年底\\xa0「碳權抵碳費」比例年底出爐\\n碳權交易所本月7日成立,攸關碳權核發的「自願減量辦法」下月將正式公告,規範交易機制的「溫室氣體減量額度移轉、交易或拍賣管理辦法」則預計11月預告、年底公告施行。氣候署副署長黃偉鳴表示,這表示台灣碳交易體系年底即將到位。\\n蔡玲儀補充,年底還將預告碳費收費辦法,明訂「碳權抵碳費」的比例,但初步規範僅限國內碳權,國外碳權還要討論。若買碳權可抵碳費,是否會被認為有獲利而須繳「碳交稅」?蔡玲儀則說,還須和財政部、證交所討論。\\n高雄大社工業區。圖片來源:高雄市政府都發局提供\\n探索矇矓中開展的世界、滲透身體的網,與身體和環境結盟,共同行動。'),\n", " Document(metadata={'url': 'https://enews.moenv.gov.tw/Page/3B3C62C78849F32F/1d01bd8c-2086-46c0-842d-96e9555832f6', 'date': '2023-10-18', 'title': '環境部說明碳費徵收規劃進度', 'category': '新聞發布', 'search_kw': '盤查', 'related_kw': None, 'official_website_source': 'https://enews.moenv.gov.tw/'}, page_content='環境部說明碳費徵收規劃進度\\n近來各界關心碳費徵收規劃及子法進度,環境部說明,目前規劃以年排放量達2.5萬噸的電力業及大型製造業為初期徵收對象,自113年開始,碳費徵收對象的溫室氣體年排放量就會被納入計價。環境部表示,有關碳費徵收費率,將由費率審議會依我國溫室氣體減量現況、排放源類型、溫室氣體排放種類、排放量規模、自主減量情形及減量效果,綜合衡量國際碳定價實施情形及我國產業競爭力等因素,將於明年第一季提交審議會討論後決定。\\n近來各界關心碳費徵收規劃及子法進度,環境部說明,目前規劃以年排放量達2.5萬噸的電力業及大型製造業為初期徵收對象,自113年開始,碳費徵收對象的溫室氣體年排放量就會被納入計價。環境部表示,有關碳費徵收費率,將由費率審議會依我國溫室氣體減量現況、排放源類型、溫室氣體排放種類、排放量規模、自主減量情形及減量效果,綜合衡量國際碳定價實施情形及我國產業競爭力等因素,將於明年第一季提交審議會討論後決定。\\n另依據氣候變遷因應法,事業得申請自主減量計畫核定優惠費率的規定,惟必須採行具體減量措施,例如轉換低碳燃料、採行負排放技術、提升能源效率、使用再生能源或製程改善,能實質減少排放量達指定減量目標者,才能申請核定優惠費率,若屆時未能達到者也須追補繳。\\n另依據氣候變遷因應法,事業得申請自主減量計畫核定優惠費率的規定,惟必須採行具體減量措施,例如轉換低碳燃料、採行負排放技術、提升能源效率、使用再生能源或製程改善,能實質減少排放量達指定減量目標者,才能申請核定優惠費率,若屆時未能達到者也須追補繳。\\n環境部強調,溫室氣體減量需要多元工具推動,該部已完成公告「事業應盤查登錄及查驗溫室氣體排放量之排放源」、修正發布「溫室氣體排放量盤查登錄及查驗管理辦法」、「溫室氣體認證機構及查驗機構管理辦法」,強化溫室氣體盤查查驗登錄制度,有效管理排放量;另該部於10月12日發布「溫室氣體自願減量專案管理辦法」及「溫室氣體排放量增量抵換管理辦法」二項子法,以擴大各界參與減碳工作。。\\n環境部強調,溫室氣體減量需要多元工具推動,該部已完成公告「事業應盤查登錄及查驗溫室氣體排放量之排放源」、修正發布「溫室氣體排放量盤查登錄及查驗管理辦法」、「溫室氣體認證機構及查驗機構管理辦法」,強化溫室氣體盤查查驗登錄制度,有效管理排放量;另該部於10月12日發布「溫室氣體自願減量專案管理辦法」及「溫室氣體排放量增量抵換管理辦法」二項子法,以擴大各界參與減碳工作。。\\n環境部表示,碳費徵收規劃持續進行中,並將與各界充分討論後實施。各界如對碳費徵收等相關議題有相關疑問,歡迎洽詢減碳專線(02)2322-2050及電子信箱netzero@moenv.gov.tw,由專人為各界解答。\\n環境部表示,碳費徵收規劃持續進行中,並將與各界充分討論後實施。各界如對碳費徵收等相關議題有相關疑問,歡迎洽詢減碳專線(02)2322-2050及電子信箱netzero@moenv.gov.tw,由專人為各界解答。\\nnetzero@moenv.gov.tw'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/237666', 'date': '2023-09-22', 'title': '碳費收多少? 學者以科學推估:每噸500元起徵、2030年漲至3000元', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,碳費,氣候法,碳定價,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='碳費收多少? 學者以科學推估:每噸500元起徵、2030年漲至3000元 | 環境資訊中心\\n氣候法今年2月上路,台灣碳費子法卻遲遲未出爐。面對有民間企業開始規劃明年的減碳預算,環保團體與學者昨(21)日共同召開記者會,呼籲環境部今年底前將碳費費率定案。外界對碳費費率有很多想像,卻沒有科學的參考數據。環保署2020年委託國外研究建議碳費每噸價格300元,但學者說,當時的300元其實是基於民調結果,無法反應排碳的外部成本。\\n學者指出,若讓碳費反映每噸碳排的外部成本,參照美國環保署的研究,我國碳費費率起徵價應來到每噸500元。至於碳費該收300元、500元?氣候署副署長黃偉鳴無奈表示,數字都是虛擬的,費率仍尚未訂定。\\n環境權保障基金會、綠色公民行動聯盟及氣候學者昨(21)日舉辦「優惠費率再研究,五百起徵不折扣」記者會。攝影:陳昭宏\\n民間籲「積極碳費」 每噸500元起徵\\n《氣候法》今年2月上路,授權環境部徵收碳費,加速企業減碳,不過目前預告的多項子法中,僅碳盤查草案和碳費有關。根據氣候變遷署8月公布的時程,今年底將預告碳費子法,2024年初公告碳費費率,2025年開始徵收碳費。但草案預告加上碳費審議期,費率很有可能趕不上今年底公布。\\n環境權保障基金會、綠色公民行動聯盟及氣候學者昨共同舉辦記者會,批評這半年來,環境部僅建立起碳交易制度,不將重心放在促進實質減碳的碳費上,並呼籲環境部應在年底前公布碳費起徵費率。\\n台灣氣候行動網絡研究中心總監趙家緯表示,根據美國環保署研究,每噸碳排所造成的外部成本是190元美元,約5800元台幣;若要促進工業投資減碳,每噸須收到100元美金,約3000元台幣。學者與環團共同呼籲,我國碳費起徵價應訂在每噸500元台幣,並逐年提高,在2030年達到每噸3000元。\\n趙家緯強調,若依現階段外界討論的每噸收300元,「只反映到5%外部成本而已」,相較每噸500元,一年更有高達240億元的國庫損失。\\n台灣氣候行動網絡研究中心總監趙家緯。攝影:陳昭宏\\n碳費優惠費率別再想 有如自斷手腳\\n針對環境部長薛富盛接受媒體專訪,表示碳費費率會考量消費者物價指數、避免「綠色通膨」。趙家緯批評,綠色通膨是業界欲規避碳費的說法,收碳費本來就該做,環境部不應輕易向財團妥協。台大社會學系副教授劉仲恩進一步指出,比起碳交易市場的浮動碳價,碳費對業者而言是明確且有減碳誘因的價格訊號;然而環境部規劃針對不同產業訂出優惠費率,「就好像是自斷手腳,把原本清楚的價格訊號弄模糊」,也徒增額外行政成本。\\n趙家緯表示,台灣參照英國早期「氣候變遷協議」(Climate Change Agreement,CCA)訂出優惠制度,但已有研究發現,課徵原始費率同樣能達到相同減碳成效。且英、德等國早已改採「碳差價合約」(Carbon Contract for Difference,CfD),也就是政府在業者投入低碳技術的初期給予補貼,隨著技術成本降低、碳價升高,再逐步縮減、直到取消補貼。\\n黃偉鳴則回應,美國雖有排碳外部成本研究,但其實並未有國家實際引用作為碳定價基準。至於碳費該收300元、500元?黃偉鳴表示,數字都是虛擬的,現在費率尚未訂出,「怎麼可以用虛擬的500元,說我們少收?」\\n探索矇矓中開展的世界、滲透身體的網,與身體和環境結盟,共同行動。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/235020', 'date': '2022-09-20', 'title': '每年碳費收入估數百億元 環團籲氣候法修法建立監管機制', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '能源轉型,台灣新聞,氣候變遷因應法,氣候法,監管,碳費,溫管法,中小企業,淨零碳排,淨零排放,立法院,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='每年碳費收入估數百億元 環團籲氣候法修法建立監管機制 | 環境資訊中心\\n《氣候法》有望在本會期進入二讀,但碳費徵收及管理措施仍未定案,也缺乏監管機制,民間憂心將成「黑箱政策」。綠色和平今(20)日偕同立委洪申翰、立委吳怡玎,以及業界人士等在立法院召開記者會,呼籲《氣候法》應規劃設立供民間參與的「碳費審議委員會」,也要定期公開碳費基金的使用情形。\\n綠色和平表示,建立監管機制,能讓中小企業充分向政府表達意見、並獲取完整資訊。與會的民間企業代表也指出,中小企業其實有心走向低碳轉型,但往往受限於資金無法達成,呼籲政府未來碳費基金,應優先挹注中小企業轉型,讓中小企業成為減碳助力,而非僅是「繳錢的角色」。\\n綠色和平今(20)日在立法院召開記者會,呼籲《氣候法》應規劃設立「碳費審議委員會」,也要定期公開碳費基金的使用情形。攝:陳昭宏\\n《氣候法》碳費政策未定案、缺乏監管機制 民間憂成「黑箱政策」\\n《氣候變遷因應法》(簡稱《氣候法》)草案已在5月通過立法院委員會審查,最快將在本會期進入二、三讀。而在先前會議中,已經確立會朝收取碳費的方向立法,但目前法案中關於碳費的訂價、徵收、管理及使用方式的規劃,都尚未定案,更缺乏「監管機制」。\\n為此,綠色和平今日偕洪申翰、吳怡玎、台中中小企業協會理事長張清良、高雄中小企業協會執行長鄭碧齡等人召開記者會。綠色和平指出,當法案通過後,每年徵收的碳費估計將達數百億。然而管理機制不透明,加上開放度不足,可能令整個法案「籠罩在非常巨大的黑箱中」。\\n「不受監管的碳費政策,就是黑箱政策。」綠色和平氣候能源專案主任洪昇邦進一步說明隱憂。他認為若碳費缺乏監管,主管機關將可以任意操作碳費機制,大眾卻沒有意見表達的空間。如此一來不僅減碳效果存疑,更無法檢驗目前棘手的中小企業轉型困境,是否真的有受到碳費基金的協助。等於放生中小企業獨自摸索、面對艱難的轉型過程。\\n綠色和平氣候能源專案主任洪昇邦表示,碳費缺乏監管,主管機關將可以任意操作碳費機制,大眾則沒有意見表達的空間。攝影:陳昭宏\\n中小企業低碳化的四大瓶頸 產業界籲碳費基金應用於輔導轉型\\n綠色和平今年上半年曾調查超過100家中小企業對於淨零排放政策的態度,發現他們普遍認同淨零方向,且認為各大小企業應共同承擔責任。但由於規模較小、資金不足,中小企業即使有心想轉型,難度也很高。\\n針對這點,洪昇邦指出中小企業面臨的四大問題,包括設備汰換過於昂貴、減碳技術未到位、買不到足夠綠電及缺乏碳管理知識。他認為,政府應在制定《氣候法》時,提出因應解方。其中最重要的,就是利用徵收到的碳費基金,協助中小企業因應低碳轉型。\\n張清良也舉例,不少中部的中小企業已開始推動低碳轉型,但常常換一套設備就得花千萬以上,「這已經是很多中小企業的全部資本額了。」可見負擔相當沉重。鄭碧齡也強調:「中小企業不只是繳錢(繳碳費)的角色。」而應成為淨零的助力。\\n台中企協理事長張清良表示,許多企業有意推動低碳轉型,但資金負擔相當沉重。攝影:陳昭宏\\n環團籲推碳費「監管」機制 設審議委員會加強民間參與、資訊公開透明\\n洪昇邦認為,碳費政策可以引導中小企業轉型,但對於什麼時候會被徵收、政府會有哪些輔導措施,中小企業都不清楚,因此集體陷入「碳焦慮」的氛圍中。對此,綠色和平主張,《氣候法》中應該針對碳費納入公正、透明的「監管機制」,確保資訊完整公開、意見充分表達。\\n他也建議行政院轄下應設立具跨部會協調能力的「碳費審議委員會」,成員須包括中小企業、民間團體,以及專家學者等民間的參與。主管機關也必須每年公開碳費基金的執行成效,並依據國內、外的減碳進度及趨勢,彈性檢討碳費費率,確保這項機制能與時俱進。\\n此外,洪昇邦也進一步提到,若監管機制入法、資訊透明公開,企業主就可以清楚看到碳費是如何運用在自己身上,又產生了哪些實質影響;而納入民間參與,也能讓業者在必要的時候,透過「碳費審議委員會」表達意見。\\n針對綠色和平提出的「監管」機制,洪申翰也表達了自己的意見,重申透明查核及檢驗機制的重要性。他舉例,在《氣候法》中制訂差別費率(費率優惠)並非不可,但必須要確保能刺激更大規模的減碳效益,而非「開個門讓大家找到減少繳費的方式。」更指出要建立差別費率的前提,就得必須徹底查核企業減碳量,不能讓企業自己說了算。\\n碳費首波徵收鎖定排碳大戶 未來可能擴及中小企業 輔導轉型是當務之急\\n根據環保署說法,碳費首波徵收範圍,將只鎖定在287家排碳大戶,並不會涉及中小企業。但洪申翰也指出,國外的碳費徵收通常是針對中小企業,大型企業則多採取碳交易手段。若台灣的碳費徵收不排除擴及中小企業,那就必須先讓企業主了解可能影響,並在這之前透過碳費基金協助轉型。\\n洪申翰也表示,絕對不支持碳費基金補助排碳大戶,最應該優先協助的對象是中小企業和社會大眾。他指出,碳費基金應超前部署,先輔導中小企業轉型,才能培養企業的良好體質,因應未來須繳納碳費的情境。\\n探索矇矓中開展的世界、滲透身體的網,與身體和環境結盟,共同行動。'),\n", " Document(metadata={'url': 'https://enews.moenv.gov.tw/Page/3B3C62C78849F32F/b74f4410-0323-4841-9a11-3b5187330a41', 'date': '2023-08-23', 'title': '碳費規劃113年開徵、114年繳交 驅動事業提早進行減量', 'category': '新聞發布', 'search_kw': '盤查', 'related_kw': None, 'official_website_source': 'https://enews.moenv.gov.tw/'}, page_content='碳費規劃113年開徵、114年繳交 驅動事業提早進行減量\\n氣候變遷因應法於今(112)年2月15日公布施行,其中新增碳費徵收機制,環境部氣候變遷署說明,碳費相關子法目前正積極與產業溝通中,預計今年底會預告;碳費徵收費率,將於明年上半年費率審議會設置後,決定費率。至於各界所關切碳費徵收時程部分,該署進一步說明其作業規劃,係依據碳費徵收對象之113年排放量計算其碳費並於114年繳交。透過此一作業之規劃,期望讓企業能夠提早進行各式減量工作,以減輕事業繳交碳費之負擔。\\n該署表示,目前該署已陸續訂定氣候變遷因應法相關子法,包括今(112)年5月31日已完成「應盤查登錄及查驗溫室氣體排放量之排放源」公告,6月至8月期間陸續提出「溫室氣體排放量盤查登錄管理辦法」、「溫室氣體增量抵換管理辦法」、「溫室氣體自願減量專案管理辦法」及「溫室氣體認證機構及查驗機構管理辦法」等4項子法草案預告,並辦理公聽研商會。至於碳費相關子法則包括碳費收費辦法、公告碳費收費對象及費率、指定減量目標與自主減量計畫審核辦法,以及碳費費率審議會設置要點等,預計將於今年底提出草案。目前規劃初期碳費徵收對象為年排放量達2.5萬噸之製造業及電力業,該署除積極就前述相關子法進行研擬外,並已規劃與各產業進行研商座談以降低對產業之衝擊。氣候署強調,徵收碳費影響層面廣大,將審慎進行評估並與各界充分討論後實施。\\n至於各界所關注之碳費徵收期程部分,氣候署表示,一如過去與外界說明,碳費將於113年開始徵收,現更進一步說明徵收作業規劃方式為依據碳費徵收對象之113年排放量計算其碳費並於114年繳交,並無外界所稱有延後之情形。該署特別強調,藉由此一碳費徵收作業規劃,可使碳費徵收對象提早就其溫室氣體排放情形予以檢視並進行各式減量工作,以減少113年溫室氣體排放量,進而降低其需繳交碳費所帶來之衝擊影響。各界如對碳費徵收等相關議題有相關疑問,歡迎洽詢減碳專線(02)2322-2050及電子信箱netzero@moenv.gov.tw,由專人為各界解答。\\n至於各界所關注之碳費徵收期程部分,氣候署表示,一如過去與外界說明,碳費將於113年開始徵收,現更進一步說明徵收作業規劃方式為依據碳費徵收對象之113年排放量計算其碳費並於114年繳交,並無外界所稱有延後之情形。該署特別強調,藉由此一碳費徵收作業規劃,可使碳費徵收對象提早就其溫室氣體排放情形予以檢視並進行各式減量工作,以減少113年溫室氣體排放量,進而降低其需繳交碳費所帶來之衝擊影響。各界如對碳費徵收等相關議題有相關疑問,歡迎洽詢減碳專線(02)2322-2050及電子信箱netzero@moenv.gov.tw,由專人為各界解答。\\nnetzero@moenv.gov.tw'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/229009', 'date': '2021-12-21', 'title': '【研商氣候法】北市建議30%碳費收入給地方 環署未正面回應', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,氣候法,溫管法,碳費,深度低碳專題', 'official_website_source': 'https://e-info.org.tw/'}, page_content='【研商氣候法】北市建議30%碳費收入給地方 環署未正面回應 | 環境資訊中心\\n氣候危機日漸嚴峻,我國《氣候變遷因應法》修法卻拖過一年又一年,何時送入立法院審議仍遙遙無期。環保署昨(20日)再度舉行草案研商會議,台北市環保局局長劉銘龍親自出席向中央喊話,地方做為氣候變遷的第一線,中央徵收碳費勿「集權又集錢」,應提撥30%碳費收入給地方政府。環保署環管處處長蔡玲儀對此沒有正面回應,僅表示會再與各界討論碳費的利用方式。\\n各界對於政府權責分工也有不少意見,前行政院永續會委員蕭代基就出面表示,除了沒辦法定期開會,無論是編制或預算,永續會都不足以承擔因應氣候變遷的任務。\\n台北市環保局局長劉銘龍建議,《氣候法》應納入禁售燃油車、淘汰燃煤電廠的具體時程。孫文臨攝\\n《溫室氣體減量及管理法》(以下簡稱《溫管法》)升級為《氣候變遷因應法》(以下簡稱《氣候法》)草案仍卡在環保署討論,此法自2015年上路至今,已難以跟上全球淨零碳排的減碳趨勢,環保署原定2020年初就要將修法草案送入立法院,卻遲遲無法定案。\\n環保署署長張子敬的最新說法是2022年送入立院審議,各界都拭目以待。\\n多次獻策中央 北市環局局長籲「勿集權又集錢」\\n「台北市已將2050淨零碳排入法,也於10月底公告淨零轉型的路徑,提出減碳的具體方法。」劉銘龍昨日強調,面對氣候變遷已經沒有時間了,政府腳步要快一點,建議《氣候法》應將「汰除燃煤」入法,明定淘汰燃煤電廠時間表,「淘汰燃油車」的時程也應納入,同時也要將「發展氫能」目標入法。\\n這不是劉銘龍第一次對《氣候法》修法發表意見,今年年初,他曾建議環保署應將「2050淨零碳排」入法,後來在今年10月環保署重新預告的草案中也有被採納。\\n而針對政府收取碳費,進而用於低碳轉型與減碳的工作,劉銘龍當時建議,中央應該去除「家長式」的審議補助計畫思維,將碳費直接「撥交」給地方政府運用,昨日他進一步明確指出,環保署應將碳費收入的30%提撥給地方政府。\\n劉銘龍指出,城市是對抗氣候變遷的第一線,碳費使用應建立公平分配機制,地方才有資源,「中央政府每年總預算達2兆以上,台北市一年的總預算才1700多億,且北市的總預算已較其他縣市來得高,在氣候變遷上,中央若『集權又集錢』,地方政府就使不上力。」\\n綠色公民行動聯盟研究員魏揚也認同碳費收入提撥地方使用,但他建議分配制度需更完整,例如考量地方政府的氣候脆弱度、暴露在氣候變遷的風險,還有地方政府的溫室氣體減量執行狀況等,除了給予資金,更要「讓中央與地方建立起合作培力的關係。」\\n劉銘龍(左)當面呼籲環保署官員,未來收取「碳費」應將30%提撥給地方使用。孫文臨攝\\n永續會久久開一次會 兩屆委員蕭代基:編制及預算都不足以因應氣候變遷\\n目前《氣候法》草案的主管機關為環保署,另有行政院國家永續發展委員會(簡稱永續會)負責協調、分工或整合跨部會業務的決策工作。然而劉銘龍認為,中央主管機關應由經濟部與環保署「雙主管」,淨零轉型才能成功。\\n曾任兩屆行政院永續會委員、中研院經濟研究所兼任研究員蕭代基則說,永續會本身缺乏組織條例,僅依《環境基本法》第29條、以行政命令設置,行政院長不召集就不開會,「編制及預算都不足以承擔因應氣候變遷的任務」。\\n他建議參考《災害防救法》的災害防救會報,成立「氣候變遷會報」,定期舉行會議,或將國發會升級為「國家永續發展委員會」,負責「協調、分工或整合國家因應氣候變遷基本方針及重大政策之跨部會氣候變遷因應事務」此重要任務。\\n地球公民基金會副執行長蔡中岳也說,永續會久久才開一次會,依照過去的經驗,民間會擔心效能不彰,希望有氣候會報的機制,且應在《氣候法》中把各部會的權責具體寫出來,以免各部會互踢皮球。\\n中研院學者蕭代基(發言者)提醒環保署,現行的行政院永續會無法承擔因應氣候變遷的任務。孫文臨攝\\n環保署環管處處長蔡玲儀(中)並無正面回應各方修法訴求,僅說會再與各部會溝通。孫文臨攝\\n面對各方建議,環管處處長蔡玲儀並未正面回應,僅表示若涉及其他部會的討論,會再舉行部會間的研商會議討論修法方向,目前仍希望透過行政院現有的機制來進行各部門的減碳權責協調及管制,但相關計畫都會對外公開。環管處副處長黃偉鳴也說,各界對《氣候法》有許多期待,「但沒辦法把所有事情都納入一個法律中」。\\n20211220《溫管法》修法草案by環境資訊中心公共檔案區on Scribd\\n\\n又名小鹿,經常把筆搬來搬去,喜歡潛水、爬山、旅行、音樂、文學、電影、煮咖哩、吃甜點...族繁不及備載。身而為人有點抱歉,也以鹿刻Luke為名寫字,努力辨識海中每一滴水的真名。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/231776', 'date': '2021-07-23', 'title': '憂2050淨零轉型淪口號 跨黨派立委要政院加速制定碳定價', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,碳費,碳定價,碳稅,極端氣候,淨零碳排,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='憂2050淨零轉型淪口號 跨黨派立委要政院加速制定碳定價 | 環境資訊中心\\n氣候危機不分黨派,綠色和平今(23日)舉行線上記者會,公布最新民調,有近九成的民眾支持政府訂定更積極的減碳目標,並應向碳排大戶收取碳費;有75%的民眾認為碳費至少每噸碳排500元。民進黨立委洪申翰、國民黨立委謝衣鳳,以及民眾黨立委蔡壁如,則在記者會上異口同聲向行政院喊話,要求盡速實施碳定價機制,別讓總統蔡英文的淨零宣示淪為空泛口號。\\n綠色和平民調顯示,近九成民眾支持政府訂定更積極的減碳目標,並向碳排大戶收取碳費。示意圖。圖片來源:shih-chen yang(CC BY-SA 2.0)\\n綠色和平民調:九成民眾盼政府有積極減碳目標\\xa0 八成民眾不知現行目標\\n全球極端氣候災害不斷,歐盟日前公布氣候危機的「55套案」 (Fit for 55),強化減碳措施,將於2023年試行碳邊境調整機制(又稱碳關稅),國外的高碳排商品要進入歐盟市場,需先購買排碳額度,2026年正式上路,美國、日本也有意跟進碳關稅機制。\\n台大風險社會與政策研究中心主任周桂田直言,在歐盟公布碳邊境調整機制後,「碳定價」將驅動全球氣候經濟體系、生產鏈的地緣政治競爭,全球經濟與社會將因此急速翻轉,「台灣一個也逃不掉。」他認為,政府要建構淨零碳排路徑,要與產業、民眾或利害關係人進行淨零碳排的風險溝通,讓社會全體能為淨零轉型做準備。\\n綠色和平民調結果顯示,有近九成的台灣民眾對氣候變遷有感,支持政府擬訂更積極的減碳目標,卻只有20%的民眾知道政府現行的減碳目標,顯示政府疏於和民眾溝通氣候政策。多數民眾都支持向排碳大戶徵收碳費,其中75%的民眾認為每噸要收500元以上。\\n綠色和平民調顯示,88%民眾認為應向排碳大戶開徵碳費。圖片來源:綠色和平\\n周桂田指出,綠色和平民調顯示了碳定價的重要性,無論是碳費、碳稅或碳交易機制,政府都應盡快有完整期程規劃,以達到產業綠色轉型、社會再分配的碳稅機制。「台灣需要重新整備國家氣候治理的韌性與防禦力,以因應新一波全球氣候經濟競爭。」\\n碳費或碳稅並非直接向民眾徵收而是向排碳的企業課徵,業者則會將成本反映在價格上轉嫁給消費者。根據環保署統計,台灣每年人均碳排放為10.8噸,全球排名第20名,在亞洲僅次於韓國。若以每噸碳排收取500元碳費計算,每年碳費超過5000元。\\n蔡壁如:勿讓淨零宣示淪為口號\\xa0 碳費每噸應達300元\\n立委謝衣鳳指出,碳定價被各國視為對抗氣候危機最重要的工具,全球已有61個國家與地區實施碳定價,「台灣卻仍猶豫不決,正在失去淨零碳排的部署先機。」各國碳邊境調整機制將上路,台灣卻仍無碳定價機制,「再拖下去只能任人宰割,會後悔莫及。」\\n立委洪申翰也說,政府必須盡快完備碳定價法規,並儘速執行,財政部也要啟動研擬的碳稅,逐步擴大碳定價收取對象,才能與國際接軌。透過《溫管法》修法增訂碳費機制,收取的費用也要納入公正轉型、科學研究等用途,成為社會面對氣候危機的資金。\\n洪申翰呼籲,「2050淨零碳排目標」應盡速入法。擷取自直播\\n立委蔡壁如則批評,碳定價太低,無法引導高碳排產業轉型。民眾黨認為碳費每噸300元,且每兩年要滾動式調升。依照倫敦政經學院(LSE)研究,每噸碳排收300元,每月電費僅增45元,「每月少喝一杯珍奶就能護地球,救子孫,催生綠色經濟。」\\n蔡璧如直言,因應國際碳定價趨勢,2022年就要先開徵「碳費」,2026年再開徵「碳稅」,以接軌歐盟碳關稅,只剩半年時間就要完成修法,「與其繳碳關稅給他國,不如台灣自己課,並把資金用於國內減碳,掌握產業轉型先機。」\\n藍綠同調\\xa0 洪申翰、謝衣鳳:2050淨零排放目標需入法\\n蔡壁如批評,總統蔡英文4月宣示2050淨零轉型,但是環保署至今仍提不出符合國際趨勢的《溫管法》修法草案,行政院應該積極協調各部門減碳政策,督促溫管法修法進度,儘速公布淨零路徑研究成果,「不要讓蔡總統的淨零宣示,成為空泛的政治口號。」\\n洪申翰強調,政府要負起責任,將2050淨零排放目標入法,成為民間與企業面對淨零轉型的靠山,「溫管法修法及碳定價機制就是台灣面對極端氣候風險的『氣候疫苗』,可提高台灣面對氣候變遷的免疫力。」謝衣鳳也認為,2050淨零排放目標入法。執政黨與在野黨兩位立委提出一致相同的訴求。\\n謝衣鳳呼籲「2050淨零碳排目標」應盡速入法。擷取自直播\\n洪申翰透露,總統蔡英文在在4月宣布「2050淨零轉型」的目標後,即指示國發會成立工作小組召集各部會研究淨零路徑。「但這些工作都沒有讓外界了解跟對話,非常可惜」他認為,未來立法倡議的壓力只會愈來愈大,行政部門要加強與民間的對話。\\n綠色和平呼籲,環保署的《溫管法》修正草案需將「2050年達成淨零排放目標」明確入法,並納入碳定價地板與滾動式調升機制,落實排碳污染者付費,碳費應高於每噸10美元。行政院必須公布「淨零排放路徑研究成果」,讓全民督促政府落實淨零碳排。\\n又名小鹿,經常把筆搬來搬去,喜歡潛水、爬山、旅行、音樂、文學、電影、煮咖哩、吃甜點...族繁不及備載。身而為人有點抱歉,也以鹿刻Luke為名寫字,努力辨識海中每一滴水的真名。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/232506', 'date': '2021-10-18', 'title': '立委關切碳交易機制 環署定調碳權非屬金融商品', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '台灣新聞,碳費,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='立委關切碳交易機制 環署定調碳權非屬金融商品 | 環境資訊中心\\n歐盟即將開徵碳關稅,排碳者付費的時代即將來臨。立委關切我國碳定價制度,環保署今(18日)重申將於2023年開徵碳費,碳權也不會成為金融性商品。金管會依循國家政策,暫不成立碳權交易所。財政部也避免重複課徵,暫不收碳稅。「碳費」或將成為我國唯一的碳定價機制。\\n不過,多位立委質疑政府偏重碳費而拒絕碳交易,有限的政策工具恐難以達成「2050淨零碳排」,財政委員會召委李貴敏要求環保署限期提出檢討報告。\\n立法院財政委員會今(18日)邀集經濟部、財政部、環保署、金管會、國發會等討論「綠色金融行動方案與碳權交易所」。孫文臨攝\\n考量交易流通性不高\\xa0 暫不設立碳權交易所\\n氣候危機迫在眉睫,為加速降低碳排,世界各國政府紛紛建立「碳定價機制」,透過經濟手段來促使產業降低碳排放,有29個國家已有「碳交易市場」,超額排碳的企業,須向減碳有成的企業購買「碳權」,每噸碳最高達2000元台幣;有35個國家制定碳稅/費,以固定費率收取排碳費用,每噸最低僅5元。\\n我國針對碳定價機制也討論多年,卻始終沒有具體方案。然而,歐盟規劃2023年起逐步實施碳邊境調整機制(CBAM,俗稱碳關稅),規範特定產品進口歐盟時需購足碳排額度,以避免碳洩漏。台灣各界紛紛要求政府加速碳定價機制。\\n立法院財政委員會今(18日)以「綠色金融行動方案與碳權交易所」為題,邀集環保署、經濟部、國發會、金管會、財政部等各部會共商碳定價機制。環保署長張子敬表示,「碳定價制度要真正達到減碳效益,也要考量企業的競爭力。」\\n張子敬認為,我國碳排放源集中在幾大排碳大戶,若握有碳權額度的產業不願釋出碳權,可能會造成市場供不應求,碳權交易市場流通性不足,無法達到預期的減碳目的,因此環保署的政策是碳費先行。\\n環保署長張子敬強調,初步規劃碳權不屬於金融商品。孫文臨攝\\n張子敬強調,政策推動上,「初期不會把碳權交易作為金融商品,避免投資炒作。」而是會強化國家溫室氣體登錄平台,以環評階段要求的新增開發行為自願性抵減的方式,進行碳權的專案抵換,讓產業可以用合理的價格取得抵換額度。\\n參考歐盟碳關稅\\xa0 環保署:未來可對高碳排進口產品收取碳費\\n立委曾銘宗則指出,目前美國、歐盟都有碳權期貨的交易,追問環保署、金管會與財政部,未來是否有規劃成立碳權交易所以接軌國際。他直言,未來歐盟又要實施CBAM,台灣必須要有因應的對策,「台灣產品銷到歐盟要被徵碳關稅,國外的產品進口台灣也應收取碳關稅。」\\n曾銘宗等多位立委接連詢問何不成立碳權交易所,要求環保署進一步提出報告。孫文臨攝\\n張子敬則回應,因應歐盟的碳邊境調整機制,環保署已將碳費納入《溫管法》修正草案中,目標在下個會期完成修法,2023年即可開徵碳費,「修法內容也會參考歐盟CBAM的精神,訂定對來自高碳排國家進口產品收取碳費的法條,作為貿易談判的籌碼。」\\n張子敬也提到,由於台灣不是UNFCCC(聯合國氣候變遷綱要公約)的締約國,我國的碳權交易機制可能不被國際認可,無法與國際碳權交易市場接軌,對台灣的減碳也沒有幫助,「除非有所突破,才會朝向建立碳權交易所。」\\n財政部長蘇建榮表示,環保署擬開徵碳費,目前無規畫再徵收碳稅。孫文臨攝\\n金管會主委黃天牧也表示,依照國家政策為碳費先行,目前無碳權交易的規劃,「沒有現貨交易,就不會有期貨交易。」他指出,未來若要成立碳權交易所,需先有完整盤查並訂定總量管制和配額度等,會持續關注國際發展情形,配合國家政策來執行。財政部長蘇建榮也說,環保署將會開徵碳費,為避免重複課徵,暫無規劃課徵碳稅。\\n經濟部次長曾文生則解釋,碳權交易機制,只有當企業碳排超過額度才會有交易,因此交易量較低、單價較高,雖然部分國家的市場交易效率可促成減碳成效,但也有看到部分碳交易市場失靈的狀況,「碳費則是納管企業的每噸碳排都需要繳交碳費,雖然單價較低,但整體企業的支出可能較高,在台灣的減碳效益可能會比較好,碳費收了以後也可以部分抵減歐盟的CBAM。」\\n金管會主委黃天牧強調,設置碳權交易所與否會配合國家政策。孫文臨攝\\n又名小鹿,經常把筆搬來搬去,喜歡潛水、爬山、旅行、音樂、文學、電影、煮咖哩、吃甜點...族繁不及備載。身而為人有點抱歉,也以鹿刻Luke為名寫字,努力辨識海中每一滴水的真名。'),\n", " Document(metadata={'page': 5, 'chunk': 1, 'source': '113年第3次碳費費率審議會_會議資料.pdf', 'extension': 'pdf'}, page_content='113年第3次碳費費率審議會_會議資料6\\n6\\n碳定價:\\n地球温暖化\\n對策稅背景與目的:\\n⚫氣候變化減緩稅於 2012年10月起徵 ,政策\\n目標在於創造清潔能源技術發展和節能所\\n需的措施收入 ,同時減少化石燃料的使用 。\\n課徵標的及管制對象 :\\n⚫課徵標的:化石燃料 (使用量 ),由燃料生產\\n者承擔繳稅責任 (上游 )。\\n⚫管制對象:電力業 ,工業 ,住商 ,及運輸部門;\\n管制排放量占總排放量的 75%。\\n碳價水準與收入 :\\n⚫價格水準: 289日元 /噸(約1.88美元 )。\\n⚫收入總額: 2022年徵收總額約 2,200億日\\n元(約14.3億美元 )。'),\n", " Document(metadata={'url': 'https://enews.moenv.gov.tw/Page/3B3C62C78849F32F/fba0a7e9-563f-48d2-a55a-726718bca8ba', 'date': '2023-05-24', 'title': '防漂綠\\u3000穩健推動碳交易', 'category': '新聞發布', 'search_kw': '盤查', 'related_kw': None, 'official_website_source': 'https://enews.moenv.gov.tw/'}, page_content='防漂綠\\u3000穩健推動碳交易\\n近期各界對於碳定價、碳交易等高度關注,有許多不同的看法及想像,其中包括推動碳交易可能產生漂綠的疑慮。對此,環保署表示我國分階段徵收碳費,同時鼓勵事業執行自願減量專案,對於減量額度抵換交易有把關機制,讓碳交易是減碳助力而非漂綠。\\n近期各界對於碳定價、碳交易等高度關注,有許多不同的看法及想像,其中包括推動碳交易可能產生漂綠的疑慮。對此,環保署表示我國分階段徵收碳費,同時鼓勵事業執行自願減量專案,對於減量額度抵換交易有把關機制,讓碳交易是減碳助力而非漂綠。\\n氣候變遷因應法(下稱氣候法)在今年2月15日正式上路,將推動實施碳費,透過經濟誘因促使納管事業加速減碳,同時也鼓勵事業或各級政府自行或聯合共同提出自願減量專案申請取得減量額度,取得之後可以移轉、交易或拍賣予有需求者,以提高減量成本有效性。為強化減量額度交易監管,氣候法亦明定中央主管機關得委託中央金融主管機關或其指定之機關(構)辦理額度交易。\\n氣候變遷因應法(下稱氣候法)在今年2月15日正式上路,將推動實施碳費,透過經濟誘因促使納管事業加速減碳,同時也鼓勵事業或各級政府自行或聯合共同提出自願減量專案申請取得減量額度,取得之後可以移轉、交易或拍賣予有需求者,以提高減量成本有效性。為強化減量額度交易監管,氣候法亦明定中央主管機關得委託中央金融主管機關或其指定之機關(構)辦理額度交易。\\n碳交易可能衍生「漂綠」疑慮為近期各界關切議題之一。「世界經濟論壇」(WEF)將企業常見的漂綠樣態分為兩大類:其一是「選擇性的資訊揭露」,企業只揭露其生產活動對環境有正面影響的訊息,且忽略或刻意忽視對環境可能造成負面影響的訊息;其二是「象徵性的行動」,企業僅做表面上對於其形象有正面助益的象徵性作為,卻忽略解決實質問題,如宣示碳中和卻忽略應有的減排行動。\\n碳交易可能衍生「漂綠」疑慮為近期各界關切議題之一。「世界經濟論壇」(WEF)將企業常見的漂綠樣態分為兩大類:其一是「選擇性的資訊揭露」,企業只揭露其生產活動對環境有正面影響的訊息,且忽略或刻意忽視對環境可能造成負面影響的訊息;其二是「象徵性的行動」,企業僅做表面上對於其形象有正面助益的象徵性作為,卻忽略解決實質問題,如宣示碳中和卻忽略應有的減排行動。\\n環保署表示,企業「漂綠」會誤導社會大眾,並且延遲淨零轉型相關工作之推動。該署參照WEF 提醒,納入相關工作推動及子法訂定考量。首先,環保署已公告納管應盤查登錄溫室氣體排放量之排放源,具有這些排放源的事業必須就其排放場域邊界逐一鑑別排放源並計算排放量,於其盤查報告書具體明確揭露其生產活動可能產生的各種溫室氣體排放量,且其盤查報告書已經過第三方查驗機構之查證後公開於「事業溫室氣體排放量資訊平台」(https://ghgregistry.epa.gov.tw/epa_ghg/)。\\n環保署表示,企業「漂綠」會誤導社會大眾,並且延遲淨零轉型相關工作之推動。該署參照WEF 提醒,納入相關工作推動及子法訂定考量。首先,環保署已公告納管應盤查登錄溫室氣體排放量之排放源,具有這些排放源的事業必須就其排放場域邊界逐一鑑別排放源並計算排放量,於其盤查報告書具體明確揭露其生產活動可能產生的各種溫室氣體排放量,且其盤查報告書已經過第三方查驗機構之查證後公開於「事業溫室氣體排放量資訊平台」(https://ghgregistry.epa.gov.tw/epa_ghg/)。\\n其次,環保署將依氣候法第25條及第36條分別訂定子法,以分別規範國內額度審核及交易等應遵行事項,並委託金融監督管理委員會(下稱金管會)或其指定機關(構)辦理額度交易事宜。減量額度審核之後,取得額度之事業可將額度移轉或交易予有需求者,作為其抵減碳費或新設變更排放源增量抵換之用,或作為其自主對外宣告抵減某些生產活動之用(即俗稱碳中和)。\\n其次,環保署將依氣候法第25條及第36條分別訂定子法,以分別規範國內額度審核及交易等應遵行事項,並委託金融監督管理委員會(下稱金管會)或其指定機關(構)辦理額度交易事宜。減量額度審核之後,取得額度之事業可將額度移轉或交易予有需求者,作為其抵減碳費或新設變更排放源增量抵換之用,或作為其自主對外宣告抵減某些生產活動之用(即俗稱碳中和)。\\n環保署表示,為達2050淨零排放目標,國際間對於自願碳交易市場愈來愈謹慎。環保署也同步採行二大策略:其一對於減量額度(有人稱為「碳權」)之審核必須符合可量測、可驗證、可報告(MRV)之原則,以確保實質減量;同時須符合具備外加性、保守性、永久性、避免產生危害及避免重複計算等五大原則,以避免減量額度被拿來抵減時,減損到原來相關管制規定預計達到的減量成效。其二,有關額度交易,環保署已委託金管會,金管會已指定由臺灣證券交易所股份有限公司成立之臺灣碳權交易所股份有限公司辦理,該署將訂定子法明確規範交易程序、對象及相關限制,同時對於未來可以交易的減量額度,也會依照上述原則審慎評估選擇後,納入規範及推動。\\n環保署表示,為達2050淨零排放目標,國際間對於自願碳交易市場愈來愈謹慎。環保署也同步採行二大策略:其一對於減量額度(有人稱為「碳權」)之審核必須符合可量測、可驗證、可報告(MRV)之原則,以確保實質減量;同時須符合具備外加性、保守性、永久性、避免產生危害及避免重複計算等五大原則,以避免減量額度被拿來抵減時,減損到原來相關管制規定預計達到的減量成效。其二,有關額度交易,環保署已委託金管會,金管會已指定由臺灣證券交易所股份有限公司成立之臺灣碳權交易所股份有限公司辦理,該署將訂定子法明確規範交易程序、對象及相關限制,同時對於未來可以交易的減量額度,也會依照上述原則審慎評估選擇後,納入規範及推動。\\n環保署呼籲,事業應該優先建立溫室氣體排放量盤查能力,掌握自身排放量、重點排放源等,並據以規劃採行減量措施,盡可能降低生產活動的排放量才是具體減量行動,利用減量額度來抵減是最後手段,且須慎選採用的減量額度,以免淪為「象徵性行動」而有漂綠之嫌。\\n環保署呼籲,事業應該優先建立溫室氣體排放量盤查能力,掌握自身排放量、重點排放源等,並據以規劃採行減量措施,盡可能降低生產活動的排放量才是具體減量行動,利用減量額度來抵減是最後手段,且須慎選採用的減量額度,以免淪為「象徵性行動」而有漂綠之嫌。'),\n", " Document(metadata={'page': 28, 'chunk': 1, 'source': '113年第3次碳費費率審議會_會議資料.pdf', 'extension': 'pdf'}, page_content='113年第3次碳費費率審議會_會議資料29•事業於每年 5月底前,依前一年度 1月1日至 12\\n月31日之溫室氣體排放量 ,計算應繳納之費額 ,\\n並依中央主管機關規定以網路申報並至指定金\\n融機構繳納。\\n•第1年未滿 1年者,以費率公告生效日期當月起\\n算,依月份比例計算應繳納之費額 。•公告應盤查登錄及查驗之排放源 ,且全廠(場)\\n直接及使用電力間接溫室氣體年排放量 合計值達\\n2.5萬公噸 CO2e以上之電力業及製造業\\n•以2022年盤查登錄資料推估 ,約500廠(場),收費\\n費基約 1.55億噸,占我國總排放量約 54%收費對象'),\n", " Document(metadata={'page': 28, 'chunk': 3, 'source': '113年第2次碳費費率審議會_會議資料.pdf', 'extension': 'pdf'}, page_content='113年第2次碳費費率審議會_會議資料農業使用及汽電共生享有減免\\nSwitzerland\\n課徵對象:化石燃料;遵約端點:上游33.0% 131 可高碳洩漏風險者達減量目標可退款\\n減排多於減量目標可取得減量額度\\n資料彙整自世界銀行 Carbon Pricing Dashboard 資料庫'),\n", " Document(metadata={'url': 'https://enews.moenv.gov.tw/Page/3B3C62C78849F32F/7bdc5743-219b-4f54-b17e-086d9f599b2b', 'date': '2023-09-21', 'title': '加速推動碳定價\\u3000多元工具促進實質減碳', 'category': '新聞發布', 'search_kw': '盤查', 'related_kw': None, 'official_website_source': 'https://enews.moenv.gov.tw/'}, page_content='加速推動碳定價\\u3000多元工具促進實質減碳\\n氣候變遷因應法於今(112)年2月15日公布施行,其中以碳費徵收機制為主,鼓勵納管事業自主減量,可達成指定之實質減量目標者得適用優惠費率,加大加快事業減量,同時搭配自願減量核發減量額度之機制,將減量誘因擴及更多對象,透過多元工具促進我國整體實質減碳。\\n氣候變遷因應法於今(112)年2月15日公布施行,其中以碳費徵收機制為主,鼓勵納管事業自主減量,可達成指定之實質減量目標者得適用優惠費率,加大加快事業減量,同時搭配自願減量核發減量額度之機制,將減量誘因擴及更多對象,透過多元工具促進我國整體實質減碳。\\n我國溫室氣體排放結構以電力及製造業為主,氣候法納管應盤查登錄排放量之事業包括電力、鋼鐵、水泥、造紙、石化、煉油等涉及民生之傳統產業及光電半導體產業等,排放量占我國整體排放量將近8成。碳費徵收係為達成國家各階段減量目標,並依排放量徵收,徵收對象規劃以前述電力業及大型製造業為主。氣候署表示,自113年開始,碳費徵收對象的溫室氣體排放量就會被納入計價,就時程上並無延後;另事業必須轉換低碳燃料、採行負排放技術、提升能源效率、使用再生能源或製程改善,能實質減少排放量達指定減量目標者,才能申請核定優惠費率,若屆時未能達到者也須追補繳。氣候署表示,利用多元機制引導企業加大加速減量,預計於今年底提出相關子法草案,徵收費率將於明年第一季提交審議會討論後,由環境部核定公告。\\n我國溫室氣體排放結構以電力及製造業為主,氣候法納管應盤查登錄排放量之事業包括電力、鋼鐵、水泥、造紙、石化、煉油等涉及民生之傳統產業及光電半導體產業等,排放量占我國整體排放量將近8成。碳費徵收係為達成國家各階段減量目標,並依排放量徵收,徵收對象規劃以前述電力業及大型製造業為主。氣候署表示,自113年開始,碳費徵收對象的溫室氣體排放量就會被納入計價,就時程上並無延後;另事業必須轉換低碳燃料、採行負排放技術、提升能源效率、使用再生能源或製程改善,能實質減少排放量達指定減量目標者,才能申請核定優惠費率,若屆時未能達到者也須追補繳。氣候署表示,利用多元機制引導企業加大加速減量,預計於今年底提出相關子法草案,徵收費率將於明年第一季提交審議會討論後,由環境部核定公告。\\n氣候署強調,碳費徵收制度設計亦搭配多元工具,包含:透過溫室氣體盤查查驗登錄明確掌握排放量、建立排放標竿供事業依循、推動自願減量交易將減量誘因擴及更多對象等,現階段已經陸續預告相關子法且召開公聽研商會,為啟動碳費徵收機制做準備。氣候署已多次對外強調,利用碳交易手段來抵減是最後手段,有關民間團體提出環境部把絕大部分心力放在自願減量額度交易制度上,實屬誤解。\\n氣候署強調,碳費徵收制度設計亦搭配多元工具,包含:透過溫室氣體盤查查驗登錄明確掌握排放量、建立排放標竿供事業依循、推動自願減量交易將減量誘因擴及更多對象等,現階段已經陸續預告相關子法且召開公聽研商會,為啟動碳費徵收機制做準備。氣候署已多次對外強調,利用碳交易手段來抵減是最後手段,有關民間團體提出環境部把絕大部分心力放在自願減量額度交易制度上,實屬誤解。\\n氣候署也呼籲,我國已將西元2050年淨零排放定為我國長期減量目標,考量我國溫室氣體排放主要來源為涉及民生之相關產業,為落實氣候正義,亦需要各級政府與全體國民、事業、團體共同努力推動,踐行生活及消費型態之綠色行動,共同邁向淨零目標。\\n氣候署也呼籲,我國已將西元2050年淨零排放定為我國長期減量目標,考量我國溫室氣體排放主要來源為涉及民生之相關產業,為落實氣候正義,亦需要各級政府與全體國民、事業、團體共同努力推動,踐行生活及消費型態之綠色行動,共同邁向淨零目標。'),\n", " Document(metadata={'url': 'https://esg.gvm.com.tw/article/41695', 'date': '2024-01-04', 'title': 'ESG台灣快訊》環境部首度公開碳費公式,擬給2.5萬噸免費額度', 'category': '趨勢新知', 'search_kw': '碳費', 'related_kw': '碳費,人才,ESG實踐', 'official_website_source': 'https://esg.gvm.com.tw/'}, page_content='ESG台灣快訊》環境部首度公開碳費公式,擬給2.5萬噸免費額度\\n▋環境部首度公開碳費收費方式,擬給予2.5萬噸免費額度▋調查揭:ESG落實程度不足,HR是企業推動ESG致勝關鍵▋國產有機肥料增碳匯,可望成溫室氣體減量方法學▋全國首檔「政府綠色債券」,發行量20億元、8家得標▋降低航空業減碳衝擊,民航局爭取國際碳權在台上架\\n環境部首度公開碳費收費方式,擬給予2.5萬噸免費額度\\n2024年起,台灣正式進入排碳有價時代!立法院自2023年5月起著手《氣候變遷因應法》修法草案審查,除納入2050年淨零排放目標,也將分階段由大到小徵收碳費,預計2024年起實施。環境部於2023年12月29日公布「碳費收費辦法草案」,對於碳費開徵對象、申報繳納時程、減量額度扣減碳費都有相關規定。\\n2024年1月3日,環境部旋即與經濟部、民間環保團體召開交流討論會議。根據碳費收費辦法,徵收對象為依規定應盤查登錄及查驗的排放源,且其全廠直接排放及使用電力間接排放產生排碳,合計達2.5萬噸CO2e的電力業及製造業,包含鋼鐵業、水泥業、半導體業、煉油業等。\\n環境部氣候變遷署長蔡玲儀於會中「首度公開」碳費計算公式,針對直接或間接年排碳量達2.5萬噸以上的碳排大戶,應繳費額擬採(年排放量-2.5萬公噸二氧化碳當量)×收費費率。即碳費實際繳納費用為扣除2.5萬噸的剩餘量,換言之,碳排大戶至少有2.5萬噸排碳「免費」。\\n對此,參與座談的民間團體多數不認同,質疑原先外界認定直接依碳排量收費的收費方式,何以出現類似「免徵額度」的但書,擔憂以目前規劃來看,將有損減碳力道,並建議環境部需有2、3年定期檢討減碳效益的機制。\\n蔡玲儀則解釋,基於行政考量,對於排放大戶,若有一家廠商是2.49萬噸,另一家是2.51萬噸,變成一家全繳、一家全不繳,反而讓業者有規避心態。她補充,目前500家碳排大戶主要集中在年排放數百萬噸以上的業者,「扣除2.5萬噸也只是少零頭」;至於許多年排量2.5萬噸至4萬噸的小廠,以電力使用為主。環境部主要希望藉由此機制,加速在略高於收費標準的小廠可以加速節能省電,甚至用再生能源,減到2.5萬噸以下,促進能源、產業轉型。\\n調查揭:ESG落實程度不足,HR是企業推動ESG致勝關鍵\\n面對高齡與少子化衝擊,以及永續浪潮夾擊下,企業凈零轉型除了要符合ESG國際法規,職場多元共融DEI概念也日漸受到重視。優樂地永續服務公司與國立中央大學人力資源管理研究所,長期觀察人力資源(HR)在形塑企業內部文化、建立友善職場的角色,並於2022年發起全台首次「ESG人資大調查」。\\n2023年,優樂地永續及中央大學擴大調查規模並於日前公布第二屆「ESG人資大調查」結果,除了解企業人資、經理經理人對ESG的認知、發展現況和未來展望,也檢視台灣企業內部人資如何推動ESG,落實多元、公平、共融(DEI)友善職場。\\n調查歸納六大關鍵,如下:一、HR之於ESG相關事務的重要性提高。二、HR普遍都已有或開始規劃ESG行動。三、HR與ESG連結加深。四、HR實際落實程度跟不上承諾的比例。五、 HR推動ESG事務的挑戰依然為「不易評估效益」「缺乏 ESG 相關知識與人才」,應及早強化培訓。六、 未來三年,HR主要發展ESG業務前五項分別是「招聘與選用人才」「員工發展計畫」「企業 文化」「員工培訓計畫」和「建立多元共融職場環境」。\\n優樂地永續服務公司董事長朱竹元表示,國內ESG發展已從承諾及揭露永續報告書,邁向各項議題的設計及落實。「HR是企業永續文化的推動者,也是培育與留任永續人才的專責單位,」企業必須將ESG植入員工DNA,從內部文化、凝聚共識到績效評估,人資部門將會是企業能否成功推動ESG的決勝關鍵。\\n國產有機肥料增碳匯,可望成溫室氣體減量方法學\\n因應氣候變遷,各國都在研議產業永續生產模式,農業減碳有何優勢?為推動2050年達到淨零排放,農業部連續數年發展循環利用,將禽畜糞再處理作為有機肥料使用就是一種。\\n農業部2日表示,自2023年起,有機肥料的推廣使用大幅成長,國產有機質肥料的禽畜肥含量超過50%。農民使用國產有機肥每公斤補助也從原先新台幣2元,提高至新台幣4元,帶動推廣使用面積破6萬公頃(約30萬公噸),較前一年的3.8萬公頃增加五成。\\n採用國產有機肥不僅減輕農民肥料支出逾新台幣10億元,也減少7萬4400公噸二氧化碳當量、土壤碳匯增加9萬多公噸。農業部資源永續利用司表示,使用有機質肥料,可望成為溫室氣體減量的方法學之一。\\n全國首檔「政府綠色債券」,發行量20億元、8家得標\\n去(2023)年底,高雄市政府甫拿下全國首檔政府綠色債券發行資格,2023年12月29日再完成招標,共計15家投資機構得標,投標倍數達近6倍,市場反應熱烈,最終8家得標,總計達新台幣20億元。\\n淨零轉型刻不容緩,高雄市府2023年通過「高雄市淨零城市發展自治條例」,進一步整合各局處資源成立「高雄市政府永續發展暨氣候變遷因應推動會」。高雄市財政局長陳勇勝說明,此次綠色債券發行20億元,利率1.27%,利息節省幅度高達30%。\\n在不增加債務前提下,以較低的成本資金取代既有高利率銀行借款,辦理捷運紅、橘線計畫既有借款「舉新還舊」,未來將節省利息支出,轉用加速推動環境永續建設上。希望創造政府、投資人及市民「三贏」。\\n降低航空業減碳衝擊,民航局爭取國際碳權在台上架\\n2023年底,台灣碳權交易所啟動首波「國際碳權」交易,隨著役後航空業復甦,交通部民用航空局也盼搶下先機,進一步執行碳抵換,降低產業衝擊。\\n國際民航組織(ICAO)在2022年確立航空業2050年淨零排放目標,並制定「國際航空業碳抵換及減量計畫」(CORSIA),以2019年碳排為標準,2021至2023年維持零成長,2024年到2035年降至85%,並於2050年達到淨零目標。2016年起,台灣民航局也依規陸續建置台灣的 CORSIA機制,完成國籍航空減碳法制化工作。民航局表示,國籍航空2019至2022年減碳目標確定可達標,2023年應也在標準內,2024年起挑戰漸增,若未達標就得購買碳權抵換。\\n3日,民航局長林國顯率員拜會氣候變遷署,爭取「國際航空業碳抵換及減量計畫」認可的國際碳權,上架到台灣碳權交易所,以推動國籍航空能直接在台灣買碳權。此外,民航局也邀氣候署出席全球碳市場機制(GMBM)工作小組會議,建立國際運輸減碳合作模式。'),\n", " Document(metadata={'url': 'https://csrone.com/news/7890', 'date': '2023-06-27', 'title': '碳費徵收明年上路 人才待培育', 'category': '台灣新聞', 'search_kw': '溫室氣體盤查', 'related_kw': '碳盤查管理師,氣候變遷因應法,環保署,行政院,碳排放揭露', 'official_website_source': 'https://csrone.com/'}, page_content='碳費徵收明年上路 人才待培育\\n氣候變遷、溫室效應,台灣跟隨國際腳步,宣示淨零碳排路徑,環保署、金管會更分別要求工廠、企業等未來要做到「碳排放揭露」,後續才能依照相關計算,收取碳費、碳稅等,碳盤查相關報告雖不需專業證照,但須送第三方驗證機構,取得國際ISO認證,未來相關碳盤查機制人才亟待培育。\\n歐盟已預計二○二六年全面實施碳關稅,台灣去年公告二○五○淨零碳排路徑,預計明年開徵碳費,衝擊工廠、企業必須認真節能減碳,在此之前,各公司需執行「碳盤查」,環保署已成立「氣候變遷辦公室」並公告相關指引,金管會也要求上市櫃公司在二○二七年前完成溫室氣體盤查。\\n環保署氣候變遷辦公室主任蔡玲儀表示,盤查是需依照不同法規計算碳排放量,目前歐盟、日本、美國都要求工廠進行盤查申報,但目前各國法規上,並未要求撰寫碳排申報人員需專責或具相關證照,重點放在「盤查什麼」。\\n蔡玲儀說,環署去年五月已公布「溫室氣體排放量盤查作業指引」,提供標準化方法與原則,協助完整、準確地盤查資訊,作為推動減量管理的基礎;企業學會碳盤查不難,只要懂得該收集哪些數據,包含工廠用油、煤、電等數據,再透過相關試算平台試算,目前已開設輔導班。\\n蔡玲儀表示,現行制度雖未強制要求各公司設置「碳盤查管理師」,但各家計算的數據報告,仍須經過「第三方驗證」機構查證。\\n環保署認可的機構已從七家提升到九家,財團法人全國認證基金會也增加更多法人認證碳排,企業碳盤查文件只要被簽署,就獲國際認證,可上供應鏈。\\n蔡玲儀指出,雖企業免設碳盤查專責人員,但第三方機構的查驗人員會被嚴格要求,也要取得專門證照與許可證,樂見企業雇用具有碳盤查能力的人才,有助內部加速節能減碳規劃。\\n\\n資料來源:自由時報圖片來源:Headway\\n延伸閱讀:全球碳定價浪潮下的台灣貿易企業地緣政治新風險 5關鍵原則6層面韌性\\n想知道更多'),\n", " Document(metadata={'page': 24, 'chunk': 1, 'source': '113年第1次碳費費率審議會_會議資料.pdf', 'extension': 'pdf'}, page_content='113年第1次碳費費率審議會_會議資料25\\n敬請指教'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/237293', 'date': '2023-07-28', 'title': '環保署暫不考慮國外碳權納增量抵換 \\xa0工總憂衝擊投資環境', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,碳抵換,碳權,環評,氣候變遷因應法,工總,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='環保署暫不考慮國外碳權納增量抵換 \\xa0工總憂衝擊投資環境 | 環境資訊中心\\n環保署6月公布「溫室氣體增量抵換辦法」草案,要求符合標準的開發業者必須依法抵換碳排放。今(28)日辦理草案研商會,有業者擔憂抵換來源不足,恐衝擊投資環境,希望能加入國外碳權、繳納代金等機制。環保署說明,以減量目標來看,國外的碳權品質不穩定,目前並非優先考量;代金則要先等碳費上路後才能設計。\\n環評強制抵換碳排放 每年須抵換10%、連續10年\\n《氣候變遷因應法》今年2月上路,環保署預估有12項子法必須配合修正,先在6月底預告了「溫室氣體排放量盤查登錄管理辦法」、「溫室氣體增量抵換管理辦法」、「溫室氣體自願減量專案管理辦法」3項子法,展開社會溝通,助企業及早規劃減量措施。\\n環保署今日辦理「溫室氣體增量抵換辦法」草案研商會。草案將強制要求開發業者抵換碳排放,規定新設立工廠、園區、高樓建築等開發案,或開發變更後碳排放增量達10%,須每年抵換10%排放、連續抵換10年,違反規定可處10~100萬元罰鍰。\\n業者憂抵換來源不足 環保署提醒:國外碳權暫不考慮\\n協商會上,有石化業者擔憂,草案中恐怕無法列出所有可行方法,建議可在減量來源增加「其他」等認可的行為,避免日後爭議。\\n環保署氣候變遷署籌備處副主任巫月春解釋,抵換來源包含「自願減量專案」取得的額度,自願減量專案對於減量方法已有相關規範,要依既有可對照的方法學,或是新申請減量專案,都有規範可循。\\n此外,碳權交易所8月將上路,初期規劃主要業務是「代購國外碳權」,業界好奇,交易取得的碳權是否能當作抵換來源。環保署排放管理組副組長郭孟芸說明,必須審視碳權品質與來源,若是來自國外的、品質不好的可能就要再審視,畢竟減量是希望達成國家減量目標,必須以降低排放量優先,國外的碳權不列入優先考量。\\n想繳代金再等等 碳費上路才有配套\\n部分業者深怕抵換來源不足,或實際抵換出現困難,全國工業總會代表即警告,預期屆時增量抵換需求量將遠大於核發的減量額度,新的開發案無法符合法規要求之下,投資環境受限恐怕衝擊整體經濟。\\n有業者提出希望以「繳納代金」的方式完成抵換義務。對此,郭孟芸強調,環保署並不排除代金機制,但為了避免代金淪為「花錢了事」就好,必須綜合考量不同減量形式、成本,因涉及碳費費率,在碳費成熟之前不會修法,要等配套完善再來實施。\\n郭孟芸說,這個機制會促進更多人去取得減量額度,額度將會隨著時間不斷被開發出來、不斷被使用。為了避免代金淪為「花錢了事」,必須綜合考量不同減量形式、成本,要等新制上路後統計相關數據,並且納入碳費等,才能設計出有效的代金規劃。\\n巫月春強調,環保署並不排除代金機制,但因涉及碳費費率,在碳費成熟之前不會修法,要等配套完善再來實施。\\n生在台灣,活在台灣,我們都是山與海的子民。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/239034', 'date': '2024-05-07', 'title': '「打2折太多了」學者分析碳費子法草案 籲檢討「碳洩漏係數」機制', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,能源轉型,台灣新聞,碳費,碳定價,歐盟碳邊境調整機制,碳關稅,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='「打2折太多了」學者分析碳費子法草案 籲檢討「碳洩漏係數」機制 | 環境資訊中心\\n環境部今(7日)將召開第三次碳費審議會,各界期待關鍵費率出爐之時,也對於環境部4月30日公布的草案內容如規劃「碳洩漏風險係數」、鋼鐵及水泥等高碳洩漏風險產業的排放量至多可打2折等,引發諸多討論。台灣科技媒體中心(SMC)昨(6)日舉行記者會,邀請中央研究院經濟研究所兼任研究員蕭代基、台灣大學土木工程學系助理教授謝依芸分享對碳費政策的建議。\\n學者指出,碳費子法草案規劃的碳洩漏風險係數仍給予企業太多折扣,應「儘速把係數調回去」,才能達成減碳效果。學者並指出,歐盟已意識到碳洩露風險係數的補貼是錯誤的,台灣應學歐盟經驗,施行「台灣版CBAM」避免碳洩漏風險。\\n企業減量誘因恐不足 學者:打2折太多!\\n「2折太多了!」蕭代基和謝依芸都如此直言。謝依芸認為,近期很多業者對碳費感到焦慮,政府應加快實施碳費制度,業者才會投入減碳,但是打折一定會降低減碳誘因,應該儘速把係數調回去,才能達成減碳效果。\\n蕭代基補充,環境部草案並未說明如何界定高碳洩漏風險產業,若依歐盟規範「碳定價使成本增加5%以上」,如果國內碳定價不夠高,根本達不到此標準,會使減量誘因不足,更凸顯台灣不適合這樣的機制。\\n實際試算國內被點名的鋼鐵業高碳洩漏風險產業,以中鋼為例,2022年登錄排放量約1947萬噸,假設以每噸500元費率計算,須繳交約97.3億元的碳費,對比營業額約193億元,約成長50%,確實可以符合歐盟標準。但反觀其他產業別,如高科技電子業的友達光電,該公司登錄合計排放約200萬公噸,換算約10億元碳費,相較營業額2400多億新台幣,增幅微乎其微。\\n學者:碳洩露係數已被歐盟淘汰 台版「CBAM」應跟進\\n碳洩露係數從何而來?蕭代基受訪解釋,該制度原於歐盟,因為歐盟最先實施碳定價。當時歐盟擔心境內的生產成本可能變高,導致國外相同產品以便宜價格競爭,為避免國外產品取代歐盟產品、或是歐盟生產線慢慢萎縮或轉移至國外,推出碳洩露風險係數給予境內補貼。\\n蕭代基強調,如今歐盟已經意識到這樣的補貼是錯誤的,故推出碳邊境調整機制(CBAM),且明定碳洩漏補貼歸零。台灣身為「後進之國」,應該學習歐盟先進的教訓,直接施行「台灣版CBAM」。\\n蕭代基表示,我國《氣候法》第31條已規範進口貨物碳洩露的問題,稍微修法結合費率即可。如此可避免降低本國碳定價,會等同補貼本國的排放密集產業,不符合外部成本內部化的原則。\\n今日再審碳費 學者盼資訊公開促進討論\\n蕭代基指出,碳費是達成淨零重要的政策工具,公部門在制定政策時應該一併公布所依據的資料與討論,讓社會大眾了解減量效益並評估衝擊。目前不只研究資料的透明度不足,公部門之間的數據與資料交流可能也不夠,應加強公開與交流,有利各部會與各項政策推動。\\n謝依芸也強調數據開放與跨部門合作的重要性。他以電動車政策為例,目前政策是2040年禁售燃油車,但研究發現台灣車輛普遍使用18~20年,亦即可能到2050年,仍有燃油車在路上運行,影響運輸部門減量進程,就可以規劃提早禁售。\\n生在台灣,活在台灣,我們都是山與海的子民。'),\n", " Document(metadata={'url': 'https://esg.gvm.com.tw/article/5825', 'date': '2022-05-26', 'title': '台灣碳費收多少?OECD建議2030年碳底價2000元', 'category': '趨勢新知', 'search_kw': '碳費', 'related_kw': '碳定價,碳費,OECD,IMF', 'official_website_source': 'https://esg.gvm.com.tw/'}, page_content='台灣碳費收多少?OECD建議2030年碳底價2000元\\n台灣將於2024年開徵碳費,首波針對鋼鐵、石化、水泥等碳排大戶。其中「碳定價」扮演關鍵角色,也將成為加速企業減碳的必要工具。然而,台灣當前具體費率及徵收機制仍不明朗,環保署23日也表態,下半年會討論初期費率訂定,後續則隨時間增遞的趨勢,研擬2030年前滾動調升。\\n23日舉辦的「台灣碳定價策略」論壇中,邀請來自歐盟(The European Union)、世界銀行碳定價領導聯盟(Carbon Pricing Leadership Coalition, World Bank )、世界經濟論壇(World Economic Forum)\\xa0,分享淨零策略中碳定價的定位與功能。同時,也邀集行政院、環保署代表與企業專家,共同研討台灣在「碳有價時代」,未決的碳費政策該何去何從。\\n綠色和平東亞分部執行總監施鵬翔點出,台灣目前碳費規畫缺乏兩大關鍵要素,第一是碳定價的預期減量目標,第二是長期管考機制。碳定價不只是對抗氣候變遷的戰略,更能推動產業轉型、綠色產業發展,若沒有足夠的資金挹注在基礎建設和技術研發,將影響國家長期競爭力。\\n對於碳定價,歐洲經貿辦事處副處長 Guillermo Martinez 表示,歐盟已定下一系列措施,包含外交政策、交通、賦稅、價格等,呼籲台灣與世界即刻行動,同舟共濟。世銀淨零目標和碳定價工作組聯合主席 Mauricio Cárdenas 再三重申「碳費不能重複計算是基礎」, 公司必須追踪和披露信用的來源。\\n各國碳價不一,IMF建議全球制定「碳底價」防企業鑽漏洞\\n世界經濟論壇氣候與自然負責人Teresa Hartmann透過視訊呼應,目前有許多國家承諾淨零減排目標,但實際上只有15%在淨零目標下,訂定明確碳價機制。\\nHartmann舉例,台灣碳定價目前仍在規劃中,而中國每噸為10美元,歐盟碳定價每噸將近100美元。每個國家的碳定價因生產製程的碳成本而不同,連帶也影響全球製造業分布及消費品售價。在各國經濟水平不一的情況下,究竟「碳」定價多少才能真正改變企業行為,達到減排目標?\\n根據經濟合作暨發展組織( OECD )去年研究,每噸30歐元以上的碳定價才能促進有效降低碳排,建議2030年最低碳定價60歐元(約新台幣2000元),全球碳定價中位數應達120歐元。Hartmann坦言,即使是碳定價高的歐盟,目前一噸定價不到100美元,離此目標仍有很大的空間,但全球必須達成「碳定價快速增加」的共識,才能降低碳排。\\n另一方面,目前各國碳定價不同,為避免企業將廠房外移到低碳定價國家,國際貨幣基金組織(簡稱IMF)建議全球制定「碳底價」,有助市場維持公平競爭。國際貨幣基金組織也提案,碳定價分為3階層:低收入國家每噸25美元(約新台幣750元)、中收入國家50美元、高收入國家75美元。研究顯示,若實施國際貨幣基金組織建議之碳底價,全球排放量可降低9至12%。中收入國家加入「碳底價」,減碳效果更將提高四倍。\\n針對各國關心的「碳定價」是否會影響經濟成長?Hartmann表示,據研究數據分析,碳定價對經濟成長影響不到1%,且有自償效果。也就是說,當碳底價訂在每噸50美元,便能降低氣候變遷對於糧食供應、人類健康、氣候調適措施的自付成本,最後完全抵銷碳定價對經濟成長的影響。\\n台灣碳費怎麼收?環保署2030年前研擬調升機制\\n回頭來看台灣碳費徵收機制,環保署環管處處長兼氣候變遷辦公室主任蔡玲儀表示,此次修法增加碳費徵收機制,將採「先大後小」「分階段徵收」等模式。徵收的碳費將用於減碳工作,專款補助地方政府、各部會企業等。\\n2020年環保署曾委託倫敦政經學院(LSE)針對台灣的碳定價制度進行研究,當年12月發布報告書「台灣碳定價之選項。」其中,研究者建議台灣先從「碳費」著手推動碳定價,且先設定較低的碳費水準,約每噸新台幣300元,目前相關草案預計2022年底公布。\\n至於外界關注的費率制定,環保署會於下半年討論初期費率,採納世界銀行建議、評估台灣自身狀況,以「減少排放」、「促進低碳發展」為政策目標。蔡玲儀指出,費率設計會參考「減量成效」及「鄰近國家基準點」,並評估對徵收者、產業、總體經濟與物價的衝擊。在兼顧有效環境、公平性及避免負面影響的原則下,台灣將在2030年前滾動調整碳價機制,「一定是跟著全球上升的趨勢」。\\n碳定價至關重要,但非減排唯一工具。行政院能源及減碳辦公室副執行長林子倫提及,碳定價在國際上有多種形式,舉凡碳費、碳稅、碳權甚至碳關稅,台灣以碳費先行,未來亦會同步評估其他形式,惟課徵對象及目的不同,不會重複課徵。環保署今年底前將完成氣候變遷法三讀,預計2024年起徵碳費,第一階段納入直接排放2.5萬噸以上的企業,其餘指標仍待盤點。'),\n", " Document(metadata={'url': 'https://esg.gvm.com.tw/article/25498', 'date': '2023-04-03', 'title': '淨零排放引企業「碳焦慮」!生意難做還要繳碳費?', 'category': '趨勢新知', 'search_kw': '碳費', 'related_kw': '碳費,氣候變遷', 'official_website_source': 'https://esg.gvm.com.tw/'}, page_content='淨零排放引企業「碳焦慮」!生意難做還要繳碳費?\\n最近熱度很高、百工百業都在詢問的熱門關鍵字,就是碳費。這是老瓶、但裝了新酒,大部分企業都一知半解,於是四處打聽,靠著吸收碎片化的知識或資訊片面解讀,不只容易緊張焦慮,各種因誤解而產生的問題,也讓我們為了釐清來自各界的詢問而疲於奔命。\\n台灣碳管理的腳步,事實上是依循著國際的進展。也許你有聽過「先期抵換專案」,從2010年開始實施,這就是最早期的獎勵工具。抵換專案開放給有能力減碳的排放源進行申請,將其減碳成效轉成具體的減碳額度—也就是碳權(註一),進而再出售移轉給有ESG要求、環評減量承諾、與自願碳中和需求的企業,以做為遵約之用。\\n其後於2015年正式通過《溫室氣體減量及管理法》(編按:2023年正式修法更名為《氣候變遷因應法》),做為碳管理作為之依據。根據該法,我國長期減量目標,設定為2050年的溫室氣體排放量須較基準年(2005年)降低50%以上。\\n4種國家碳管理政策工具\\n一個國家可以用的碳管理政策工具,一般來說主要有4種:\\n「2050年的溫室氣體排放量須較基準年(2005年)降低50%以上,」這就是總體減量目標。就像是公司的業績目標一樣,當訂好全公司一年的業績目標,就會分配給不同的事業部認領。《氣候變遷因應法》也是如此,設定每5年一期的「階段管制目標」,以逐步滾動調整的方式,約束六大主要部門—包括能源、製造業、服務業、住宅、農業、環境部門的排放量,以符合國家長期減量目標之減量路徑。\\n簡稱碳交易。在這個機制之下,當你設定了減量目標,就可以把允許排放量當做一種籌碼(碳權)發放給受管制者;以這些碳權做為標的,可以進行碳交易。碳交易試圖透過市場機制來降低達成減量目標所需的成本支出,它的構想是,當產生排放的產業被限制可排放的數量時,有些業者可以透過自行減量來達到要求,但有些可能因為成本太高而降不下來,這時就可以透過碳交易機制,讓無法減量的業者去購買其他業者剩餘的碳權,以抵減自己的排放量。\\n排放交易機制提供了一個平台,讓有剩餘排放數量的業者和無法達到排放數量要求的業者,透過交易的方式互通有無。對於能有效減排的業者而言,他可以從碳交易中獲利;對於無法有效減量的業者,他可以從碳交易中省錢,不然他就得自己花更多的錢用其他方式減排。\\n目前台灣是當成獎勵工具,也就是沒有強制性。在實務上可以對以下幾種形式進行限制,比如:每單位產品的排放量、車輛每公里行駛的排放量等;各部門可透過此工具來限制生產或消費行為的碳排放,以達到排放減量的效果。舉例而言,美國所實施的CAFÉ標準「車輛平均油耗標準」就是一種效能標準,在美國生產販售的車輛,都必須滿足此一標準。若無法達標,就需要向其他已達標的車商購買碳排放額度,以抵換自身帳面上的排放量。特斯拉就是此一制度的受益者,因為電動車不排碳,該公司透過販售碳權,每年可進帳新台幣4、500億元。\\n碳的環境稅費(levy)是實務上用以實現「碳定價」的一種方式,其目標在於將溫室氣體排放對環境造成的損害成本予以內部化、變成公司帳單,促使利害關係人進行決策時能夠將排碳的成本納入考量,進而減少排放量。\\n你想,當我們開始課徵碳費或碳稅後,業者的生產成本會上升;此時業者會透過提高產品價格,嘗試將一部分的成本轉嫁給消費者,而消費者在面對較高的產品價格時,多半會減少消費。買得少,生產自然減少,就會降低生產過程的碳排放。這是課徵碳費或碳稅的第一種減量效果來源。另一方面,業者為了要省碳費或碳稅,會去考量有沒有一些成本比較便宜的減量技術可以使用;在引入這些減量技術後,排放量會減少,就可以少繳一些費用。這是課徵碳費或碳稅的第二種減量效果來源。\\n升級版的《氣候法》來達成淨零排放\\n目前《溫室氣體減量及管理法》只有授權前三個政策工具,且執行進度並不理想。因為一些核心的政策工具,像是排放交易與效能標準等,都必須讓所有利害關係人達成共識;但當涉及成本代價時,要眾議僉同,又談何容易。\\n然而,重要碳排放國相繼宣布淨零排放目標,當我們赫然發現富國、窮國、大國、小國、友好國、競爭國都已經跑在我們前面,急起直追是不得不為的選擇了。欲追求淨零排放,現行法規要求的2050年國家減量目標已力有未逮,因此,環保署於2020年底提出《溫室氣體減量及管理法》修正草案,並於2023年1月三讀通過,升級成為《氣候變遷因應法》,由總統蔡英文在2月15日公布該法上路,盼提升台灣碳管理效能。\\n這個升級版的法,有什麼厲害的新功能呢?先別急,你可以先理解更多減碳工具之後,再回頭看懂政策也不遲。氣候變遷因應法三讀通過!一文帶你看2050淨零排放、碳費徵收重點。\\n(註一)到目前為止,共通過超過60件先期抵換專案,預計可帶來6464萬噸的減碳成效,只是大部分拿到碳權的企業都沒有進行交易,而是把碳權收在抽屜中,等著以後再拿出來用。\\n本文轉載自綠學院/文:劉哲良(專欄觀點不代表本社立場)'),\n", " Document(metadata={'url': 'https://esg.gvm.com.tw/article/52585', 'date': '2024-05-02', 'title': 'ESG台灣快訊》碳費3子法草案預告,2030年起徵門檻降至1萬噸', 'category': '趨勢新知', 'search_kw': '碳費', 'related_kw': '碳匯,低碳轉型,淨零排放', 'official_website_source': 'https://esg.gvm.com.tw/'}, page_content='ESG台灣快訊》碳費3子法草案預告,2030年起徵門檻降至1萬噸\\n▋碳費3子法草案預告,2030年起徵門檻降至1萬噸▋三星、池上國有地招標造林,促進森林碳匯發展▋200億公運計畫發展低碳運輸▋海尼根加碼台灣135億元,投資屏東啤酒廠淨零工程▋台達電7度獲得美國能源之星永續大獎\\n碳費3子法草案預告,2030年起徵門檻降至1萬噸\\n為推動碳定價制度,環境部預告「碳費收費辦法」、「自主減量計畫管理辦法」及「碳費徵收對象溫室氣體減量指定目標」等三項草案。環境部氣候變遷署長蔡玲儀指出,根據2022年盤查資料推估約500家納入此次收費對象,占全台總排放量約54%,收費費基約1.55億噸,若按照目前規劃製造業與電力業在2030年有機會達到減碳23%至25%國家自定貢獻目標。\\n學者與環保團體認為,碳費扣除額過高、優惠措施過多,減碳效果有限,呼籲環部應公布減碳評估,並提高碳費費率。對此,環境部回應表示,碳費制度旨在透過經濟誘因促使企業減碳,未來將持續檢討調整,並強調碳費只是減碳措施之一,後續將推動其他配套措施。\\n三項草案重點如下:\\n三星、池上國有地招標造林,促進森林碳匯發展\\n財政部國有財產署與中興大學合作,將於4月30日至6月6日公告標租宜蘭、台東2筆國有地,供企業造林,讓企業取得碳權。\\n此次招標的國有地分別位於宜蘭三星鄉(約21公頃)和台東池上鄉(約72公頃),皆為低度利用的土地,得標廠商需造林並向環境部申請碳權,其中10%碳權歸國產署,其餘歸企業。租約1期10年,可續約5次,最長可使用60年。宜蘭三星土地每年權利金不得低於新台幣15萬元,台東池上則不得低於90萬元,另依土地申報地價年息1%計算租金。\\n國產署指出,此招標是台灣首度以公開招商的方式,將國有地提供給企業造林,以促進森林碳匯發展。\\n200億公運計畫發展永續!智慧公運、綠能車輛打造低碳運輸\\n為推動公路公共運輸永續發展及交通平權,國發會已審議通過「公路公共運輸永續及交通平權計畫(114-117年)」草案,總經費200億元,為推動公路公共運輸永續發展及交通平權,國發會已審議通過「公路公共運輸永續及交通平權計畫(114-117年)」草案,總經費200億元,將於114年至117年期間推動。\\n該計畫聚焦四大主軸:公共運輸復原與健全、人本及交通平權、智慧公共運輸與數位管理、推廣低碳與綠色運輸。其中,在綠色公運方面包括,在轉運站佈設公共充電樁設備,因應電動車市場需求;在偏鄉鼓勵客貨共載,降低車輛使用增加營收;引導民眾改變運具選擇行為與減少私人運續使用;推動綠能公共運具,增加綠色公共運輸服務多元性等。\\n國發會指出,該計畫預計可提升公路公共運輸使用率,降低公車涉入事故死亡或受傷人數,實踐人本、交通平權及淨零低碳綠色運輸政策。\\n海尼根加碼投資台灣135億元,屏東啤酒廠打造淨零碳排、垃圾零掩埋\\n為響應政府淨零政策,海尼根宣布加碼投資台灣135億元,將屏東啤酒廠打造為淨零碳排啤酒廠,預計2030年達成目標,並在2025年起為台灣帶給每年超過新台幣41億稅收。\\n海尼根將引進綠能釀酒科技、循環經濟營運模式,並提升水資源運用效率,減少二氧化碳排放量。目前已正式引進歐洲新臥式發酵桶槽,也將在台灣採用可回收綠瓶機制(RGB),能夠降低玻璃容器廢棄物達6成以上。\\n不僅如此,全面提升廠區水資源運用效率達8成以上,規劃採購綠電與架設太陽能板,目標在2030年降低超過55萬公噸二氧化碳排放量,實現全場廠區淨零碳排與垃圾零掩埋目標。\\n台達電7度獲得美國能源之星永續大獎,助美國客戶節2900度電\\n台達電近期宣布已連續7年獲得美國能源之星傑出永續獎,也是第9度獲得能源之星年度夥伴,透過採節能直流無刷馬達技術的換氣扇產品,目前已經有97款擁有能源之星規範標準,在2023年幫助美國客戶節省超過2900萬度電。\\n現今台達電開發高效能節能產品及解決方案在2010至2022年間,幫助全球客戶節省超過399億度電費,等同降低接近2105萬公噸二氧化碳當量效益,包括在工業自動化、樓宇自動化、資通訊基礎設施、電動車充電、儲能系統等等領域。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/237253', 'date': '2023-07-25', 'title': '排放大戶不適用「自願減量」換碳權 環署:不能重複計算', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '污染治理,台灣新聞,碳權,氣候法,溫室氣體,碳交易,碳費,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='排放大戶不適用「自願減量」換碳權 環署:不能重複計算 | 環境資訊中心\\n碳權交易所將在今(2023)年8月成立,環保署推出攸關碳權核發的「溫室氣體自願減量專案管理辦法」草案。造紙、鋼鐵公會於昨(24)日舉行的草案研商會質疑,自願減量專案排除碳排大戶不公平。環保署則強調,減碳效益不能重複計算,排放大戶另透過自主減量少繳碳費,若又取得碳權,不符合國際減碳原則。\\n環保署24日辦理「溫室氣體自願減量專案管理辦法」研商會。攝影:陳昭宏\\n「自願減量」造紙、鋼鐵業怨遭排除\\xa0環署:不能少繳碳費又能換碳權\\n《氣候法》今年2月上路,除向大戶徵收碳費,也鼓勵其他排放源提出專案,減排換碳權。環保署上月底推出因應碳權的「溫室氣體自願減量專案管理辦法」草案,24日邀請政府機關、民間團體及業者進行研商。\\n草案中的排除對象,「排放大戶」因已須繳交碳費,不可申請自願減量專案,引起產業不滿。造紙公會認為,草案直接排除大型排放源並不公平,應保留彈性讓業者選擇繳交碳費或執行減量;鋼鐵公會則說,排放大戶投資減碳的效益很大,不允許自願減量,恐限縮減碳技術發展。\\n氣候變遷署籌備處副主任黃偉鳴澄清,減碳效益以「不重複計算」為原則,「你減量可以少繳碳費,我還給你碳權,這會不會怪怪的?」。他說,排放大戶業者透過「自主減量」減免碳費,已足夠業者把錢留住、投資減排技術。\\n自願減量須符合多項原則,包含避免重複計算。圖片來源:環保署簡報\\n小幅減碳程序簡化\\xa0環團憂民眾權益難把關\\xa0業者嘆仍划不來\\n根據草案,「自願減量專案」是政府核發碳權的管道,符合資格的業者可向環保署提出申請,經過查驗機構「確證」及環署審查才能開始執行減碳;減碳工作完成後,查驗機構「查證」成果無誤,業者才能獲取碳權。\\n業者申請自願減量專案,註冊時須「確證」,取得碳權前須「查證」。圖片來源:環保署簡報\\n草案也針對小規模減碳工作提出簡化作法,設置再生能源小於5MW、年節電量小於2000萬度,或減碳量小於2萬公噸的專案可免提環境衝擊分析及公眾意見。統一超商代表指出,即使流程簡化,零售業投入碳查驗的成本仍然高,「我怎麼划得來?」。\\n據了解,環署曾針對減碳效益較明確的專案,開放免除前期「確證」,相關案例包括超商更換燈具、空調。但統一超商指出,後期的「查證」成本也很高,新版草案也應調整。黃偉鳴則表示,小規模減碳確實需要簡化流程輔導,但是否連查證也免,則需研究國際有無先例。\\n環境權保障基金會專職律師呂冠輝則指出,許多光電案場才2公頃就有用地爭議,5MW的門檻規模約達5公頃,免提公眾意見並不合理。環署應考量納入草案未授權民眾申訴權益受損,或檢舉違法漂綠的情況。\\n環境權保障基金會專職律師呂冠輝。攝影:陳昭宏\\n環署:新法推出後 既有「抵換專案」碳權不會失效\\n「自願減量專案」(草案)前身是「溫室氣體抵換專案管理辦法」,過去已有92案註冊、24案取得「抵換專案」碳權。黃偉鳴說明,舊辦法不會廢除,但已不受理新案,未來業者只能走新法取得碳權;先前取得的「抵換專案」額度仍有效,可選擇轉為新制額度。\\n南極碳資產管理公司代表質疑,抵換專案的減碳額度計入期七年,展延後最長21年,新制計入期則僅五年,展延後最長15年。業者若選擇轉為自願減量額度,可運用碳權的時間將遭砍整整六年,「是很大損失」。\\n黃偉鳴回應,若以申請、展延共15年計,碳權可能將近2040年都還在市場流通,屆時減碳技術早已大幅更新。近期國際都在檢討專案時程過長問題,多國皆改成每專案給五年。\\n探索矇矓中開展的世界、滲透身體的網,與身體和環境結盟,共同行動。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/238529', 'date': '2024-02-20', 'title': '薛富盛:碳費審議委員會月底成立 採歐盟標準減碳可望享「大折扣」', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '台灣新聞,碳費,溫室氣體,氣候法,氣候變遷,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='薛富盛:碳費審議委員會月底成立 採歐盟標準減碳可望享「大折扣」 | 環境資訊中心\\n環境部長薛富盛今(20)日表示,本月底將組成碳費審議會,委員共21名,包含六名公民團體代表,3月底就會推出碳費費率草案。他透露,未來業者若採用SBTi歐盟減碳標準,不排除可享有一半以上,「非常非常大」的折扣費率,對產業將頗具誘因。\\n環境部長薛富盛今日受訪指出,業者採用歐盟高標準減碳,不排除可享「比一半還高」的優惠費率。攝影:陳昭宏\\n我國排碳大戶明(2025)年起繳交碳費,費率和優惠措施草案遲遲未公開。環境部今日下午舉行媒體餐敘,薛富盛在席間接受媒體聯訪指出,環境部現正進行「碳費審議會」委員遴選,委員共計21名,其中包含六名公民團體代表。\\n薛富盛表示,會考量民間角色平衡性,邀請公協會加入討論,「不應該侷限在只有環保團體」,審議會成員2月底就會選出,並召開兩場的審議會議,於3月底推出碳費費率以及優惠費率等相關草案,經過兩個月的研商期後公告。\\n針對「碳費指定減量目標及自主減量計畫審核辦法」(簡稱優惠費率草案)當中的「2.5萬噸免徵額」爭議,薛富盛表示,原意是要避免「2.49萬噸不用繳、2.51萬噸要全繳」的不公平狀況,環境部認為十分合理,也獲得多數人的同意。當被問及民間團體反對意見,他話鋒一轉,「這個部分(草案)目前都還沒定案,只是在蒐集意見的階段」。\\n薛富盛進一步說明優惠費率草案,若業者採用歐盟的「科學基礎減量目標」(SBTi)減碳標準,「我們給他的折扣,會非常非常大」,無法採用SBTi者,環境部也會考量不同產業型態訂出指定目標,達成後給予優惠,「折扣當然就稍微低了一點」。\\n環境部明(2025)年起將針對全台排碳大戶徵收碳費,目前正在研擬相關子法。圖為高雄大林煉油廠。攝影:陳昭宏\\n至於「非常非常大」的折扣是多少?薛富盛說「不會免繳」,但不排除費額砍半,「甚至會比一半還高」,但也強調目前談折扣還太早,還需由同時考量碳費審議結果。\\n薛富盛提到,國內石化、鋼鐵、水泥產業不排除因ECFA問題面臨衝擊,希望碳費審議委員會考量主、客觀因素找出合理費率。他強調,無論是經濟局勢、4月可能調漲的電價,乃至於當前的看守內閣階段,都不會影響碳費推動的腳步。\\n探索矇矓中開展的世界、滲透身體的網,與身體和環境結盟,共同行動。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/239045', 'date': '2024-05-08', 'title': '碳費3子法估暑假公告 費率決議後縮短預告期', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,碳費,碳定價,調適基金,氣候法,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='碳費3子法估暑假公告 費率決議後縮短預告期 | 環境資訊中心\\n環境部4月底預告碳費子法草案,昨日召開第3次碳費審議會。環境部次長施文真今(8)日說明,蒐集完各界意見之後,3個子法預計在暑假期間正式公告;至於關鍵的碳費費率,可能還需要召開2~3次的審議會,決議之後會縮短預告期,讓費率盡快上路。\\n環境部將評估碳費情境 費率再等等\\n環境部昨(7)日召開第三次碳費審議會,交叉分析日本、韓國、新加坡碳定價做法以及我國碳費子法草案的規劃,仍然沒有討論到外界關注的費率數字。\\n環境部次長施文真今(8)日出席《國家氣候變遷科學報告》發布說明會時受訪表示,下一次審議會就會開始討論不同碳費方案在各種情境下的評估狀況,討論完之後,預估還需要開2~3次審議會才會預告費率。她表示希望委員可以討論出共識,「不希望用投票(來決定費率)。」\\n但費率公告時間點關乎碳費起徵時間,施文真說,預告費率有經過審議會討論,可望評估縮短預告期,「例如一個星期左右」,儘早正式實施。\\n3子法暑假正式公告 預期收入規模不高\\n面對草案引發的爭議,高碳洩漏風險企業若達成指定目標則享排放量「打2折」與優惠費率,民間氣候團體質疑此舉將讓碳費收入減少300億元以上。施文真認為,這筆錢讓企業用來執行減量,讓國家達成減量目標,對整體的減緩比較有幫助。\\n施文真坦言預告中的3個子法,制度「有點複雜」,會在6月底預告期滿前和不同團體密集開會,蒐集各界意見之後召開研商會議,最終再回到環境部內部討論,預計暑假期間可以正式公告。\\n環境部4月29日預告三項碳費相關子法草案,包含收費辦法、自主減量計畫及指定目標。\\n氣候法規定,碳費收入將作為溫室氣體管理基金,因此環境部還須制定支用管理辦法。施文真表示,不管收多收少,支用原則都會以氣候法規定為基礎,用於減緩技術、調適等方向。至於收入的規模,則與碳費費率有關,目前預期收入規模不如外界評估的這麼高。\\n生在台灣,活在台灣,我們都是山與海的子民。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/229165', 'date': '2021-01-20', 'title': '【研商氣候法】不滿碳費針對製造業 工總將提產業界草案', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,氣候法,碳費,石化業,鋼鐵,研商氣候法,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='【研商氣候法】不滿碳費針對製造業 工總將提產業界草案 | 環境資訊中心\\n環保署今(20日)舉辦《溫室氣體減量及管理法》(溫管法)修法座談會,包含石化公會等產業界代表出席表達立場,認為碳費徵收不公,只針對製造業,應該改為隨電、隨油徵收,達到所謂的全民減碳。工總更打算提出產業版的《溫管法》修正草案。\\n《溫管法》2015年7月上路至今超過五年,面對極端氣候加劇,各界積極要求環保署修法,強化減碳力道。環保署於2020年底提出修正草案,將34條的《溫管法》升級為62條的《氣候變遷因應法》(簡稱氣候法)。\\n產業代表盼修法刪除國家減碳目標 \\xa0工總將另提草案版本\\n環保署今天於孫運璿紀念館舉辦修法座談會,已是第15場相關會議,現場座無虛席,學者、公民團體、產業界仍有諸多意見。\\n現行《溫管法》第四條規範我國減碳目標為「2050年較2005年減碳50%」,環保團體多次批評過於保守,立委洪申翰、台北市環保局長劉銘龍等人也曾公開建議,修法應納入明確的「淨零碳排」目標,不過環保署態度仍不明確。\\n台灣區石油化學公會代表許評碩認為,「《溫管法》不應有具體、硬性的減量目標,應趁此次修法將該條文刪除。」\\n環保署今(20日)舉行《溫室氣體減量及管理法》(溫管法)修法座談會,現場座無虛席。孫文臨攝\\n許評碩認為,減碳目標應該交由行政院核定,依據社會與產業實際狀況,以及國際情勢調整,否則可能造成經濟蕭條、工作機會消失。台灣區石油化學工業同業公會總幹事何麗君也表示認同,他強調,每個國家的條件不一樣,減碳目標應交由行政部門調整,較有彈性。\\n許評碩還提到,《溫管法》中「協助傳統產業節能轉型」的說法也有問題。他指出,傳統產業有助於國家發展,不應「要求強制轉型」,而傳統產業應隨市場機制退場。\\n何麗君則抱怨,石化業者對《溫管法》修正草案仍有諸多意見,過去經濟部已要求業者減排,也針對設備能效訂定使用規範,現在《溫管法》又要管。\\n「也有地方政府已經提出自主的溫室氣體管制方案,業者希望能夠整合、簡化,才不會疊床架屋。」身為工總成員的何麗君透露,工總近期將提出產業界《溫管法》草案版本。\\n台灣區石油化學工業同業公會總幹事何麗君認為,碳費應該隨油徵收、隨電徵收。孫文臨攝\\n淨零碳排怎麼辦?\\xa0環團拋「2070碳中和」\\xa0本世紀下半葉是底線\\n面對石化業者的強烈表態與法條中「別訂目標」的說法,台灣環境規劃協會理事長趙家緯建議,可以參考國際上《巴黎協定》,把淨零碳排目標期程訂為「本世紀下半葉」。他說,即便無法訂出「2050淨零碳排」,至少也要上調2050年的減碳目標到75%。\\n台灣水資源保育聯盟理事長蔡志宏則強調,日、韓都已宣示2050碳中和,連中國也宣示2060碳中和,「台灣政府卻還卡在2050只減一半。」他說,就算台灣跟不上國際腳步,也可以訂出2070年碳中和,「政府不敢宣示是懦弱、提不出減碳路徑是無能。」\\n環保署環管處處長蔡玲儀強調,針對碳費、減碳目標會再持續與各界溝通。孫文臨攝\\n碳費重頭戲\\xa0產業代表:應隨電、隨油徵收\\n「溫室氣體排放管理費」(俗稱:碳費)徵收,也是本次修法重點之一。但外界最關心的「徵收對象、費率、計算方式」,都須等《氣候法》完成後再由子法來規範。\\n在第30條中,公用事業(如台電、中油)提供能源產生的間接碳排可扣除,無須繳納碳費。對此何麗君質疑,目前許多民間電廠售電給台電,該如何計算?他提出:「碳費的收取應該是所有的用電戶,包含企業與個人都要繳,最簡單的方式就是作為電力附加費,依據用電多寡來收取。」\\n何麗君表示,「其實住宅的耗電也很驚人。」碳費不應只針對排碳的製造業者,而是改為隨電、隨油來徵收,才能鼓勵全民一起減碳。\\n環署憂全民買單 環團:碳費制度須定期檢討\\n趙家緯指出,碳費的收取不應扣除公用事業提供能源所產生的間接碳排放,「根據行政院能源轉型白皮書的規畫,未來電費還是會納入碳費做適度調整。」\\n環境權保障基金會研究員林彥廷則建議,碳費制度必須定期檢討,跟國家每一期的減碳行動方案掛勾,才有助於達成各階段的溫室氣體減量目標。\\n環保署環管處副處長黃偉鳴解釋,排除公用事業的碳費,是要針對真正排碳的用電端去收取碳費,「如果只針對發電業者來徵收碳費,未來電費調整的空間又不如預期的話,那最終還是發電業負擔碳費,還是轉嫁給全民買單。」\\n根據自由時報報導,若每噸碳費100元,台電每年約須繳交百億元的碳費,估影響電價1%~2%,台電將爭取以代徵方式向民眾收取;中油則表示目前仍言之過早。\\n黃偉鳴強調,在擬定子法的階段,還會針對碳費收取的方式、對象,展開研商會、公聽會等討論。\\n20210120氣候法座談會簡報by環境資訊中心公共檔案區on Scribd\\n\\n又名小鹿,經常把筆搬來搬去,喜歡潛水、爬山、旅行、音樂、文學、電影、煮咖哩、吃甜點...族繁不及備載。身而為人有點抱歉,也以鹿刻Luke為名寫字,努力辨識海中每一滴水的真名。'),\n", " Document(metadata={'page': 4, 'chunk': 2, 'source': '113年第4次碳費費率審議會_會議資料.pdf', 'extension': 'pdf'}, page_content='113年第4次碳費費率審議會_會議資料3.分三期調整碳洩漏風險係數值 (0.2, 0.4, 0.6)\\n4.應先取得核定之自主減量計畫 , 才能申請適用高碳洩漏風險係數\\n5.若未落實自主減量計畫或指定目標 , 則須依一般費率進行追繳'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/238787', 'date': '2024-03-28', 'title': '費率難產! 碳費審議會初步共識:2030年前分階段調整', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '能源轉型,台灣新聞,碳費,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='費率難產! 碳費審議會初步共識:2030年前分階段調整 | 環境資訊中心\\n環境部前(26)日召開第二場碳費審議會,有重大進展。初步決議分階段調整碳費。不過,這意味著環境部預計在3月底敲定的碳費時程將跳票。昨(27)日環境部長薛富盛在立法院衛環委員會當場致歉,面對朝野立委頻砲轟碳費遙遙無期、千呼萬喚出不來,他指出,對於「(委員)沒有非常簡單以投票5分鐘決定一個數字」感到欣慰。\\n薛富盛強調,碳費仍是今年開徵、明年繳費,但實際從幾月開始收,還要討論。\\n碳費費率出爐時間確定延後,但環境部強調維持今年開徵、明年繳費。攝影:陳昭宏\\n碳費審議會環團代表、環境權保障基金會研究員林彥廷接受媒體聯訪表示,碳費審議會討論氣氛良好,委員都有充分討論,理解碳費的衝擊及評估方式,「而非馬上就要進入投票做決定」。他認為分階段調整碳費是重大進展,但也坦言,碳費敲定時間延後令人失望,希望一定要在520新政府上任之前訂出,「不要再拖了」。\\n碳費審議會初步共識 一次訂出2030年前各階段費率\\n環境部碳費審議會26日召開第二場會議,下次審議會將於4月召開。委員於會中達成共識,認為碳費應分階段調整,因此決議將不只訂出起徵費率,而是一次訂出2030年之前、不同階段的一般及優惠費率,以此做為後續開會的目標。\\n黃偉鳴表示,第二場審議會的重點是向委員介紹各國的碳定價及配套措施,但有委員認為跨國比較時,光看數字並不足以判斷台灣碳費應訂在多少,必須納入不同國家的產業結構、能源情境等因素考量,才能了解不同碳定價背後的意涵;因此希望環境部整理鄰近國家如日本、韓國、新加坡的資訊,在下次會議報告。\\n黃偉鳴表示,訂出更長遠的費率能提供企業明確價格訊號,有利提早規劃中長期減碳路徑。至於將分幾階段調整,則尚待研議。\\n立委轟碳費遙遙無期 薛:維持今年開徵,起徵日可能往後\\n碳費費率延宕,環境部長薛富盛昨(27)日在立院社福及衛環委員會就碳費審議進行專案報告並備質詢,朝野立委齊批「碳費遙遙無期」、「千呼萬喚出不來」。薛富盛表示,「很抱歉,跟我們當初的計畫有落差」。薛說明,費率要考慮的因素非常多,包括央行宣布利率調升、台電漲電價等,委員們對此十分謹慎,「委員沒有非常簡單以投票5分鐘決定一個數字,我們感到非常的欣慰」。\\n薛富盛表示,碳費敲定時間則會尊重委員審議,先不設限;碳費仍維持今年開徵、明年收費,原先期待從2024年1月1日開始計算,現在不排除往後調整。碳費三項子法草案,將拚3月底至4月初預告,包括「碳費收費辦法」、「碳費收費對象溫室氣體減量指定目標」及「自主減量計畫管理辦法」。\\n環境部長薛富盛今(27)日在接受立委質詢前接受媒體聯訪。攝影:陳昭宏\\n民眾黨立委黃珊珊詢問薛富盛,碳費何時轉為碳稅,薛富盛則首度表態「把2030年當成(轉為碳稅的)節點是不錯的」,但後來澄清只是個人看法。氣候署署長蔡玲儀則在會後表示,碳費初步規劃機制是到2030年底,「但也不可能說2030年我如果要實施新的制度,就忽然轉」,必須會同財政部,將碳稅及其他稅制一起通盤檢討。\\n碳費制度將提供業者「2.5萬噸免徵額」及自主減量的優惠費率,環團批評缺乏減碳誘因,民進黨立委林月琴、林淑芬等也提出相同質疑。薛富盛回應,部分因「碳洩漏」風險較高而享有優惠費率的業者,未來可能不會給予免徵額。\\n環境部次長施文真解釋,台灣不同企業的排放結構不同,政府針對各類型產業提出相異的配套優惠,但大原則是企業不能擁有太多選項,「否則反而會讓他覺得說,我這邊扣那邊扣,都不用減了。」\\n探索矇矓中開展的世界、滲透身體的網,與身體和環境結盟,共同行動。'),\n", " Document(metadata={'url': 'https://e-info.org.tw/node/236787', 'date': '2023-05-18', 'title': '碳權交易所最快7月成立 學者:額度認證將是關鍵', 'category': '台灣新聞', 'search_kw': '碳費', 'related_kw': '氣候變遷,台灣新聞,碳權,碳交易,淨零排放,碳費,自願減量,深度低碳新聞', 'official_website_source': 'https://e-info.org.tw/'}, page_content='碳權交易所最快7月成立 學者:額度認證將是關鍵 | 環境資訊中心\\n環保署今(18日)舉辦「溫室氣體自願減量推動策略專家論壇」討論碳權交易政策。學者指出,政策應以實質減碳優先,碳權交易為「最後手段」。我國碳權交易所最快在7月成立,初期將推出國外碳權代購。學者建議,須確保減量額度認證機制完善、避免過多境外碳權進入,才有助我國達成淨零。\\n多管齊下拚淨零 「自願減量」可交易額度\\n《氣候變遷因應法》今年2月上路,其中要求碳排大戶必須繳交碳費,引發產業界高度關注。環保署承諾《氣候法》上路一年內會提出相關重點子法草案,今日舉辦溫室氣體自願減量專家論壇,作為子法意見參考。\\n環保署副署長沈志修說明,受碳費管制的企業可循「自主減量優惠」,只要達到減量目標就可享優惠費率。其餘未受碳費管制的企業,可以執行非強制性的「自願減量」工作,減碳成效可申請「自願減量額度」,該額度將可在碳交易平台上交易,供有需求的企業購入抵換排碳總量。\\n沈志修強調,碳費只規範到年排碳約2.5萬噸以上的500多家企業,但全國企業可不只500家,希望透過自願減量機制讓所有企業都可以參與減碳。過去《溫室氣體減量管理法》就有碳抵換機制,隨《氣候法》修法與國際趨勢演變為自願減量專案。\\n碳交易平台最快7月成立 初期「代購」服務遭質疑\\n沈志修表示,國內碳交易平台「碳權交易所」預計最快7月底成立,目前由金融監督管理委員會委託證券交易所建置。初期除了提供有需求的企業交易碳權,也規劃提供諮詢服務。\\n金管會主委黃天牧昨日於立法院說明,碳權交易所第一階段將代購國外碳權,以供國內中小企業購買。台灣大學社會學系副教授劉仲恩質疑,是否真有必要由交易所代購?企業也可以自行採購國外碳權,雖然部分國內企業確實有供應鏈需求,但可預計初期國內交易量不大。\\n此外,也有意見指出要仿效國外採行的「排放總量管制交易」。劉仲恩分析,學理上「費」與「量」應擇一實施,目前國內已展開碳費機制,引導企業尋求減排方式的方向正確。但長期是否有總量管制目標,應由環保署向社會說明清楚。\\n沈志修回應,目前是碳費先行,還沒有實施總量管制的時程。\\n法規必須完善 境外碳權要上限、必須是最後手段\\n劉仲恩提醒,額外的減量工作才可以給予減量額度,但國際認證過程不一,呼籲在法規上明確限制來源、案場或型態,先部分排除風險,在核發審查過程仍要謹慎把關。\\n他建議,以國內抵換先行,並以合理的碳費價格作為市場的基礎,讓各項減碳機制互相配合。\\n前台北市環保局長、台大環工所兼任助理教授劉銘龍指出,國家減碳必須以電力脫碳等整體策略為主,碳交易只是一小環節,必須要確保業者已經「減到不能再減」,才能將抵換作為最後手段,且要使用高品質的碳權,如環保署早期推出「先期專案」核發的碳權就不可復活,當時缺乏方法學,進入交易市場會引發爭議。\\n劉銘龍呼籲,境外碳權抵換仍充滿隱憂,建議加強規範境外額度扣抵不超過5%,避免太多境外碳權進入國內。\\n生在台灣,活在台灣,我們都是山與海的子民。'),\n", " Document(metadata={'url': 'https://esg.gvm.com.tw/article/27948', 'date': '2023-05-26', 'title': '碳權交易恐淪「漂綠」?環保署2招把關', 'category': '趨勢新知', 'search_kw': '碳費', 'related_kw': '碳交易,企業漂綠', 'official_website_source': 'https://esg.gvm.com.tw/'}, page_content='碳權交易恐淪「漂綠」?環保署2招把關\\n近期,國內對於碳定價、碳交易等高度關注,其中不乏對推動碳交易恐有漂綠之嫌產生疑慮。對此,環保署如何把關?\\n今年2月15日《氣候變遷因應法》(簡稱氣候法)正式上路,環保署將分階段推動碳費徵收,透過經濟誘因促使納管事業加速減碳,同時鼓勵政府、企業提出自願減量專案並申請取得減量額度。取得後,便可移轉、交易或拍賣給有減量額度需求者。為強化減量額度交易監管,氣候法亦明定中央主管機關得委託中央金融主管機關或其指定機構辦理額度交易、建立把關機制,防止碳交易成為漂綠工具。\\n世界經濟論壇(WEF)將企業常見的「漂綠」情境分為兩大類:其一是「選擇性的資訊揭露」,企業只揭露其生產活動對環境有正面影響的訊息,忽視恐對環境造成負面影響的訊息。其二是「象徵性的行動」,即企業僅做表面上有益形象的作為,卻忽略解決實質問題,例如宣示碳中和或拖慢減排行動。\\n環保署表示,企業「漂綠」會誤導社會大眾,延遲淨零轉型相關工作的推動。環保署將參照世界經濟論壇提出的漂綠樣態,納入相關工作推動及子法訂定考量。\\n環保署列管碳排大戶排放源,訂定碳權交易規範\\n目前,環保署已公告納管應盤查登錄溫室氣體排放量的排放源,被納管的產業必須逐一鑑別排放源、計算碳排放量,並於盤查報告書揭露相關溫室氣體排放量,交由第三方查驗機構查證後公開在「事業溫室氣體排放量資訊平台」。\\n其次,環保署將依《氣候法》第25條及第36條分別訂定子法,規範國內額度審核及交易等應遵行事項,並委託金管會辦理額度交易事宜。減量額度審核後,取得額度的事業可將額度移轉,或交易予有需求者,作為碳費抵減或新設變更排放源增量抵換之用。\\n隨著國際自願性碳市場愈趨謹慎,環保署同步採行兩大策略。審核減量額度(或稱碳權)須符合可量測、可驗證、可報告(MRV)之原則,同時具備外加性、保守性、永久性,避免產生危害及重複計算等五大原則,以避免碳權額度被拿來抵減時,減損原先相關管制規定預計達到的減量成效。\\n關於碳權交易,環保署已委託金管會,指定由台灣證交所成立台灣碳權交易所辦理。後續環保署將明訂子法規範交易程序、對象及限制,也會依照上述原則審慎評估、選擇未來可以交易的碳權標的。最後,環保署提醒,利用碳權來抵減碳排放量是最後手段,也須慎選採用的減量額度,以免淪為「象徵性行動」而有漂綠之嫌之嫌。')]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "question = \"誰需要繳交碳費?\"\n", "docs = retriever.get_relevant_documents(question, k=50)\n", "docs" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "### Generate\n", "# llm = ChatOllama(model=local_llm, temperature=0)\n", "\n", "# docs_documents = \"\\n\\n\".join(doc.page_content for doc in docs)\n", "# generation = faiss_query(question, docs_documents, llm)\n", "# generation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Retrieval Grader" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "### Retrieval Grader\n", "\n", "from langchain_community.chat_models import ChatOllama\n", "from langchain_core.output_parsers import JsonOutputParser\n", "from langchain_core.prompts import PromptTemplate\n", "\n", "# LLM\n", "# llm_json = ChatOllama(model=local_llm, format=\"json\", temperature=0)\n", "\n", "prompt = PromptTemplate(\n", " template=\"\"\"<|begin_of_text|><|start_header_id|>system<|end_header_id|> You are a grader assessing relevance \n", " of a retrieved document to a user question. If the document contains keywords related to the user question, \n", " grade it as relevant. It does not need to be a stringent test. The goal is to filter out erroneous retrievals. \\n\n", " Give a binary score 'yes' or 'no' score to indicate whether the document is relevant to the question. \\n\n", " Provide the binary score as a JSON with a single key 'score' and no premable or explanation.\n", " <|eot_id|><|start_header_id|>user<|end_header_id|>\n", " Here is the retrieved document: \\n\\n {document} \\n\\n\n", " Here is the user question: {question} \\n <|eot_id|><|start_header_id|>assistant<|end_header_id|>\n", " \"\"\",\n", " input_variables=[\"question\", \"document\"],\n", ")\n", "\n", "retrieval_grader = prompt | llm_json | JsonOutputParser()\n", "# question = \"溫室氣體是什麼\"\n", "# # docs = retriever.invoke(question)\n", "# docs = retriever.get_relevant_documents(question, k=10)\n", "# doc_txt = docs[1].page_content\n", "# print(retrieval_grader.invoke({\"question\": question, \"document\": doc_txt}))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# for doc in docs:\n", "# doc_txt = doc.page_content\n", "# print(retrieval_grader.invoke({\"question\": question, \"document\": doc_txt}))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hallucination Grader" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'score': 'yes'}" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "### Hallucination Grader\n", "\n", "from langchain_community.chat_models import ChatOllama\n", "from langchain_core.output_parsers import JsonOutputParser\n", "from langchain_core.prompts import PromptTemplate\n", "\n", "# LLM\n", "# llm_json = ChatOllama(model=local_llm, format=\"json\", temperature=0)\n", "\n", "# Prompt\n", "prompt = PromptTemplate(\n", " template=\"\"\" <|begin_of_text|><|start_header_id|>system<|end_header_id|> \n", " You are a grader assessing whether an answer is grounded in / supported by a set of facts. \n", " Give 'yes' or 'no' score to indicate whether the answer is grounded in / supported by a set of facts. \n", " Provide 'yes' or 'no' score as a JSON with a single key 'score' and no preamble or explanation. \n", " Return the a JSON with a single key 'score' and no premable or explanation. \n", " <|eot_id|><|start_header_id|>user<|end_header_id|>\n", " Here are the facts:\n", " \\n ------- \\n\n", " {documents} \n", " \\n ------- \\n\n", " Here is the answer: {generation} \n", " Provide 'yes' or 'no' score as a JSON with a single key 'score' and no premable or explanation.\n", " <|eot_id|><|start_header_id|>assistant<|end_header_id|>\"\"\",\n", " input_variables=[\"generation\", \"documents\"],\n", ")\n", "\n", "hallucination_grader = prompt | llm_json | JsonOutputParser()\n", "\n", "question = \"誰需要繳交碳費?\"\n", "docs = retriever.get_relevant_documents(question, k=10)\n", "\n", "generation = faiss_query(question, docs, llm)\n", "# docs_documents = \"\\n\\n\".join(doc.page_content for doc in docs)\n", "\n", "hallucination_grader.invoke({\"documents\": docs, \"generation\": generation})" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "docs_documents = \"\\n\\n\".join(doc.page_content for doc in docs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Answer Grader" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "\n", "from langchain_community.chat_models import ChatOllama\n", "from langchain_core.output_parsers import JsonOutputParser\n", "from langchain_core.prompts import PromptTemplate\n", "\n", "### Answer Grader\n", "\n", "# LLM\n", "llm_json = ChatOllama(model=local_llm, format=\"json\", temperature=0)\n", "\n", "# Prompt\n", "prompt = PromptTemplate(\n", " template=\"\"\"<|begin_of_text|><|start_header_id|>system<|end_header_id|> You are a grader assessing whether an \n", " answer is useful to resolve a question. Give a binary score 'yes' or 'no' to indicate whether the answer is \n", " useful to resolve a question. Provide the binary score as a JSON with a single key 'score' and no preamble or explanation.\n", " <|eot_id|><|start_header_id|>user<|end_header_id|> Here is the answer:\n", " \\n ------- \\n\n", " {generation} \n", " \\n ------- \\n\n", " Here is the question: {question} <|eot_id|><|start_header_id|>assistant<|end_header_id|>\"\"\",\n", " input_variables=[\"generation\", \"question\"],\n", ")\n", "\n", "answer_grader = prompt | llm_json | JsonOutputParser()\n", "# answer_grader.invoke({\"question\": question, \"generation\": generation})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# SQL" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/anaconda3/envs/llama3/lib/python3.12/site-packages/langchain_community/utilities/sql_database.py:123: SAWarning: Did not recognize type 'vector' of column 'embedding'\n", " self._metadata.reflect(\n", "/usr/local/anaconda3/envs/llama3/lib/python3.12/site-packages/langchain_community/utilities/sql_database.py:123: SAWarning: Did not recognize type 'vector' of column 'embedding'\n", " self._metadata.reflect(\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from importlib import reload # Python 3.4+\n", "import text_to_sql2\n", "reload(text_to_sql2)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/anaconda3/envs/llama3/lib/python3.12/site-packages/langchain_community/utilities/sql_database.py:123: SAWarning: Did not recognize type 'vector' of column 'embedding'\n", " self._metadata.reflect(\n", "/usr/local/anaconda3/envs/llama3/lib/python3.12/site-packages/langchain_community/utilities/sql_database.py:123: SAWarning: Did not recognize type 'vector' of column 'embedding'\n", " self._metadata.reflect(\n" ] } ], "source": [ "\n", "from text_to_sql import run, get_query, query_to_nl\n", "from langchain_community.utilities import SQLDatabase\n", "import os\n", "URI: str = os.environ.get('SUPABASE_URI')\n", "db = SQLDatabase.from_uri(URI)\n", "\n", "def run_text_to_sql(question: str):\n", " selected_table = ['2022 清冊數據(GHG)', '2022 清冊數據(ISO)', '2023 清冊數據(GHG)', '2023 清冊數據(ISO)', '水電使用量(GHG)', '水電使用量(ISO)']\n", " # question = \"建準去年的固定燃燒總排放量是多少?\"\n", " query, result, answer = run(db, question, selected_table, llm)\n", " \n", " return answer, query\n", "\n", "def _get_query(question: str):\n", " selected_table = ['2022 清冊數據(GHG)', '2022 清冊數據(ISO)', '2023 清冊數據(GHG)', '2023 清冊數據(ISO)', '水電使用量(ISO)']\n", " query = get_query(db, question, selected_table, llm)\n", " return query\n", "\n", "def _query_to_nl(question: str, query: str):\n", " answer = query_to_nl(db, question, query, llm)\n", " return answer" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from importlib import reload # Python 3.4+\n", "import text_to_sql2\n", "reload(text_to_sql2)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/anaconda3/envs/llama3/lib/python3.12/site-packages/langchain_community/utilities/sql_database.py:123: SAWarning: Did not recognize type 'vector' of column 'embedding'\n", " self._metadata.reflect(\n" ] } ], "source": [ "from text_to_sql2 import run, get_query, query_to_nl\n", "from langchain_community.utilities import SQLDatabase\n", "import os\n", "URI: str = os.environ.get('SUPABASE_URI')\n", "db = SQLDatabase.from_uri(URI)\n", "\n", "def run_text_to_sql(question: str):\n", " selected_table = ['104_112碳排放公開及建準資料', '水電使用量(GHG)', '水電使用量(ISO)']\n", " # question = \"建準去年的固定燃燒總排放量是多少?\"\n", " query, result, answer = run(db, question, selected_table, llm)\n", " \n", " return answer, query\n", "\n", "def _get_query(question: str):\n", " selected_table = ['104_112碳排放公開及建準資料', '水電使用量(GHG)', '水電使用量(ISO)']\n", " query = get_query(db, question, selected_table, llm)\n", " return query\n", "\n", "def _query_to_nl(question: str, query: str):\n", " answer = query_to_nl(db, question, query, llm)\n", " return answer" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SELECT SUM(\"外購電力(綠電)\") AS \"綠電使用量\"\n", "FROM \"水電使用量(GHG)\"\n", "WHERE \"事業名稱\" like '%建準%'\n", "AND \"事業名稱\" like '%廣興廠%'\n" ] }, { "data": { "text/plain": [ "'SELECT SUM(\"外購電力(綠電)\") AS \"綠電使用量\"\\nFROM \"水電使用量(GHG)\"\\nWHERE \"事業名稱\" like \\'%建準%\\'\\nAND \"事業名稱\" like \\'%廣興廠%\\''" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "question = \"建準廣興廠去年的綠電使用量是多少?\"\n", "query = _get_query(question)\n", "query" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Error: (psycopg2.errors.UndefinedColumn) column \"事業名稱\" does not exist\n", "LINE 3: WHERE \"事業名稱\" like '%建準%'\n", " ^\n", "\n", "[SQL: SELECT SUM(\"外購電力(綠電)\") AS \"綠電使用量\"\n", "FROM \"水電使用量(GHG)\"\n", "WHERE \"事業名稱\" like '%%建準%%'\n", "AND \"事業名稱\" like '%%廣興廠%%']\n", "(Background on this error at: https://sqlalche.me/e/20/f405)\n" ] }, { "data": { "text/plain": [ "'The query you provided contains an error. The column \"事業名稱\" does not exist in the table \"水電使用量(GHG)\". Please check the spelling or the structure of your table and try again.'" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "answer = _query_to_nl(question, query)\n", "answer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## SQL Grader" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "\n", "### SQL Grader\n", "\n", "from langchain_community.chat_models import ChatOllama\n", "from langchain_core.output_parsers import JsonOutputParser\n", "from langchain_core.prompts import PromptTemplate\n", "\n", "# LLM\n", "# llm_json = ChatOllama(model=local_llm, format=\"json\", temperature=0)\n", "\n", "prompt = PromptTemplate(\n", " template=\"\"\"<|begin_of_text|><|start_header_id|>system<|end_header_id|> \n", " You are a SQL query grader assessing correctness of PostgreSQL query to a user question. \n", " Based on following database description, you need to grade whether the PostgreSQL query exactly matches the user question.\n", " \n", " Here is database description:\n", " {table_info}\n", " \n", " You need to check that each where statement is correctly filtered out what user question need.\n", " \n", " For example, if user question is \"建準去年的固定燃燒總排放量是多少?\", and the PostgreSQL query is \n", " \"SELECT SUM(\"排放量(公噸CO2e)\") AS \"下游租賃總排放量\"\n", " FROM \"104_112碳排放公開及建準資料\"\n", " WHERE \"事業名稱\" like '%建準%'\n", " AND \"排放源\" = '下游租賃'\n", " AND \"盤查標準\" = 'GHG'\n", " AND \"年度\" = EXTRACT(YEAR FROM CURRENT_DATE)-1;\"\n", " For the above example, we can find that user asked for \"固定燃燒\", but the PostgreSQL query gives \"排放源\" = '下游租賃' in WHERE statement, which means the PostgreSQL query is incorrect for the user question.\n", " \n", " Another example like \"建準去年的固定燃燒總排放量是多少?\", and the PostgreSQL query is \n", " \"SELECT SUM(\"排放量(公噸CO2e)\") AS \"固定燃燒總排放量\"\n", " FROM \"104_112碳排放公開及建準資料\"\n", " WHERE \"事業名稱\" like '%台積電%'\n", " AND \"排放源\" = '固定燃燒'\n", " AND \"盤查標準\" = 'GHG'\n", " AND \"年度\" = EXTRACT(YEAR FROM CURRENT_DATE)-1;\"\n", " For the above example, we can find that user asked for \"建準\", but the PostgreSQL query gives \"事業名稱\" like '%台積電%' in WHERE statement, which means the PostgreSQL query is incorrect for the user question.\n", " \n", " and so on. You need to examine whether the sql PostgreSQL query matches the user question.\n", " \n", " If the PostgreSQL query do not exactly matches the user question, grade it as incorrect. \n", " You need to strictly examine whether the sql PostgreSQL query matches the user question.\n", " Give a binary score 'yes' or 'no' score to indicate whether the PostgreSQL query is correct to the question. \\n\n", " Provide the binary score as a JSON with a single key 'score' and no premable or explanation.\n", " <|eot_id|>\n", " \n", " <|start_header_id|>user<|end_header_id|>\n", " Here is the PostgreSQL query: \\n\\n {sql_query} \\n\\n\n", " Here is the user question: {question} \\n <|eot_id|><|start_header_id|>assistant<|end_header_id|>\n", " \"\"\",\n", " input_variables=[\"table_info\", \"question\", \"sql_query\"],\n", ")\n", "\n", "sql_query_grader = prompt | llm_json | JsonOutputParser()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "\n", "### SQL Grader\n", "\n", "from langchain_community.chat_models import ChatOllama\n", "from langchain_core.output_parsers import JsonOutputParser\n", "from langchain_core.prompts import PromptTemplate\n", "\n", "# LLM\n", "# llm_json = ChatOllama(model=local_llm, format=\"json\", temperature=0)\n", "\n", "prompt = PromptTemplate(\n", " template=\"\"\"<|begin_of_text|><|start_header_id|>system<|end_header_id|> \n", " You are a SQL query grader assessing correctness of PostgreSQL query to a user question. \n", " Based on following database description, you need to grade whether the PostgreSQL query exactly matches the user question.\n", " \n", " Here is database description:\n", " {table_info}\n", " \n", " You need to check that each where statement is correctly filtered out what user question need.\n", " You need to check if PostgreSQL query WHERE clause correctly filter records according to user question\n", " You need to examine whether the sql PostgreSQL query matches the user question.\n", " \n", " If the PostgreSQL query do not exactly matches the user question, grade it as incorrect. \n", " You need to strictly examine whether the sql PostgreSQL query matches the user question.\n", " Give a binary score 'yes' or 'no' score to indicate whether the PostgreSQL query is correct to the question. \\n\n", " Provide the binary score as a JSON with a single key 'score' and no premable or explanation.\n", " <|eot_id|>\n", " \n", " <|start_header_id|>user<|end_header_id|>\n", " Here is the PostgreSQL query: \\n\\n {sql_query} \\n\\n\n", " Here is the user question: {question} \\n <|eot_id|><|start_header_id|>assistant<|end_header_id|>\n", " \"\"\",\n", " input_variables=[\"table_info\", \"question\", \"sql_query\"],\n", ")\n", "\n", "sql_query_grader = prompt | llm_json | JsonOutputParser()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "question = \"建準廣興廠去年的綠電使用量是多少?\"\n", "sql_query = \"\"\"\n", "\n", "SELECT SUM(\"用電度數(kwh)\") AS \"自產電力綠電使用量\"\n", "FROM \"用電度數\"\n", "WHERE \"項目\" = '自產電力(綠電)'\n", "AND \"盤查標準\" = 'GHG'\n", "AND \"年度\" = EXTRACT(YEAR FROM CURRENT_DATE)-1\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'yes'" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "question = \"給我工業製程計算範例\"\n", "generation = \"\"\"根據建準的資料,工業製程的排放範例顯示,直接排放的總排放量為0.3165公噸CO2e。\n", "製程排放是指在工業製程過程中,由於物理或化學反應所產生的溫室氣體排放。這些排放源通常來自於特定的製程設備或過程,例如在半導體製造中使用的蝕刻設備,這些設備可能會釋放出二氧化碳(CO2)、甲烷(CH4)、氫氟碳化物(HFCs)、全氟碳化物(PFCs)、氧化亞氮(N2O)、六氟化硫(SF6)及三氟化氮(NF3)等多種溫室氣體。製程排放的管理和減少對於降低整體溫室氣體排放量及應對氣候變遷具有重要意義。\"\"\"\n", "score = answer_grader.invoke({\"question\": question, \"generation\": generation})\n", "grade = score[\"score\"]\n", "grade" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "from text_to_sql_private import get_query\n", "selected_table = ['用水度數', '用水度數', '建準碳排放清冊數據']" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'db' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[28], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m get_query(\u001b[43mdb\u001b[49m, question, selected_table, llm)\n", "\u001b[0;31mNameError\u001b[0m: name 'db' is not defined" ] } ], "source": [ "get_query(db, question, selected_table, llm)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'score': 'yes'}\n" ] } ], "source": [ "from text_to_sql_private import table_description\n", "# question = \"建準去年的類別一排放量\"\n", "# sql_query = \"\"\"\n", "# SELECT SUM(\"高雄總部及運通廠\" + \"台北辦事處\" + \"昆山廣興廠\" + \"北海建準廠\" + \"北海立準廠\" + \"菲律賓建準廠\" + \"Inc\" + \"SAS\" + \"India\") AS \"類別一排放量\"\n", "# FROM \"2023 清冊數據(GHG)\"\n", "# WHERE \"類別\" = '類別一-直接排放'\n", "# \"\"\"\n", "question = \"建準去年的固定燃燒總排放量是多少?\"\n", "sql_query = \"\"\"\n", "SELECT SUM(\"排放量(公噸CO2e)\") AS \"固定燃燒總排放量\"\n", "FROM \"建準碳排放清冊數據\"\n", "WHERE \"事業名稱\" like '%台積電%'\n", "AND \"排放源\" = '固定燃燒'\n", "AND \"盤查標準\" = 'GHG'\n", "AND \"年度\" = EXTRACT(YEAR FROM CURRENT_DATE)-1;\n", "\"\"\"\n", "print(sql_query_grader.invoke({\"table_info\": table_description(), \"question\": question, \"sql_query\": sql_query}))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Additional details" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from importlib import reload # Python 3.4+\n", "import post_processing_sqlparse\n", "reload(post_processing_sqlparse)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "sql_query = \"\"\"\n", "SELECT SUM(\"排放量(公噸CO2e)\") AS \"固定燃燒總排放量\"\n", "FROM \"104_112碳排放公開及建準資料\"\n", "WHERE \"事業名稱\" like '%建準%'\n", "AND \"類別\" = '類別1-直接排放'\n", "AND \"盤查標準\" = 'GHG'\n", "AND \"年度\" = EXTRACT(YEAR FROM CURRENT_DATE)-1;\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "from post_processing_sqlparse import get_query_columns, parse_sql_where, get_table_name" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['SUM']\n", "['類別1-直接排放']\n", "\"104_112碳排放公開及建準資料\"\n" ] } ], "source": [ "print(get_query_columns(sql_query, get_real_name=True))\n", "print(parse_sql_where(sql_query))\n", "print(get_table_name(sql_query))" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "def generate_additional_detail(sql_query):\n", " terms = parse_sql_where(sql_query)\n", " answer = \"\"\n", " for term in terms:\n", " if term is None: continue\n", " question_format = [f\"什麼是{term}?\", f\"{term}的用途是什麼\", f\"如何計算{term}?\"]\n", " for question in question_format:\n", " # question = f\"什麼是{term}?\"\n", " documents = retriever.get_relevant_documents(question, k=30)\n", " generation = faiss_query(question, documents, llm)\n", " answer += generation\n", " answer += \"\\n\"\n", " # print(question)\n", " # print(generation)\n", " return answer" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'直接排放(Category 1)指的是固定燃燒排放源中使用天然氣的設備所產生的溫室氣體排放量。\\n直接排放的用途主要包括固定燃燒和製程中使用含氟氣體及 N2O所產生之排放源。\\n直接排放的計算可以根據溫室氣體排放量盤查作業指引113年版進行。主要步驟如下:\\n\\n1. 依照活動數據,計算低位熱值和燃料用量。\\n2. 使用質量平衡法或直接監測法計算二氧化碳排放量。\\n3. 將排放係數乘以燃料用量和低位熱值,以取得單位產品用量。\\n\\n這些步驟可以幫助您計算類別1-直接排放的數據。\\n'" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "answer = generate_additional_detail(sql_query)\n", "answer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Router" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'datasource': '自有數據'}\n" ] } ], "source": [ "### Router\n", "\n", "from langchain_community.chat_models import ChatOllama\n", "from langchain_core.output_parsers import JsonOutputParser\n", "from langchain_core.prompts import PromptTemplate\n", "\n", "# LLM\n", "# llm_json = ChatOllama(model=local_llm, format=\"json\", temperature=0)\n", "\n", "prompt = PromptTemplate(\n", " template=\"\"\"<|begin_of_text|><|start_header_id|>system<|end_header_id|> \n", " You are an expert at routing a user question to a 專業知識 or 自有數據. \n", " Use company private data for questions about the informations about a company's greenhouse gas emissions data.\n", " Otherwise, use the 專業知識 for questions on ESG field knowledge or news about ESG. \n", " You do not need to be stringent with the keywords in the question related to these topics. \n", " Give a binary choice '自有數據' or '專業知識' based on the question. \n", " Return the a JSON with a single key 'datasource' and no premable or explanation. \n", " \n", " Question to route: {question} \n", " <|eot_id|><|start_header_id|>assistant<|end_header_id|>\"\"\",\n", " input_variables=[\"question\"],\n", ")\n", "\n", "question_router = prompt | llm_json | JsonOutputParser()\n", "question = \"建準去年的類別1排放量是多少?\"\n", "question = \"建準去年的綠電使用量是多少?\"\n", "# docs = retriever.get_relevant_documents(question)\n", "# doc_txt = docs[1].page_content\n", "print(question_router.invoke({\"question\": question}))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Node" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "# RAG + text-to-sql\n", "\n", "from pprint import pprint\n", "from typing import List\n", "\n", "from langchain_core.documents import Document\n", "from typing_extensions import TypedDict\n", "\n", "from langgraph.graph import END, StateGraph, START\n", "\n", "### State\n", "\n", "\n", "class GraphState(TypedDict):\n", " \"\"\"\n", " Represents the state of our graph.\n", "\n", " Attributes:\n", " question: question\n", " generation: LLM generation\n", " company_private_data: whether to search company private data\n", " documents: list of documents\n", " \"\"\"\n", "\n", " question: str\n", " generation: str\n", " documents: List[str]\n", " retry: int\n", " sql_query: str" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "# Node\n", "def show_progress(state, progress: str):\n", " global progress_bar\n", " # progress_bar = state[\"progress_bar\"] if state[\"progress_bar\"] else []\n", " \n", " print(progress)\n", " progress_bar.append(progress)\n", " \n", " return progress_bar\n", "\n", "def retrieve_and_generation(state):\n", " \"\"\"\n", " Retrieve documents from vectorstore\n", "\n", " Args:\n", " state (dict): The current graph state\n", "\n", " Returns:\n", " state (dict): New key added to state, documents, that contains retrieved documents, and generation, genrating by LLM\n", " \"\"\"\n", " progress_bar = show_progress(state, \"---RETRIEVE---\")\n", " # progress_bar = state[\"progress\"] if state[\"progress\"] else []\n", " # progress = \"---RETRIEVE---\"\n", " # print(progress)\n", " # progress_bar.append(progress)\n", " if not state[\"route\"]:\n", " route = \"RAG\"\n", " else:\n", " route = state[\"route\"]\n", " question = state[\"question\"]\n", " # print(state)\n", " question_list = state[\"question_list\"]\n", " \n", " # Retrieval\n", " if not question_list:\n", " # documents = retriever.invoke(question)\n", " # TODO: correct Retrieval function\n", " documents = retriever.get_relevant_documents(question, k=30)\n", " # docs_documents = \"\\n\\n\".join(doc.page_content for doc in documents)\n", " # print(documents)\n", " generation = faiss_query(question, documents, llm)\n", " else:\n", " generation = state[\"generation\"]\n", " \n", " for sub_question in list(set(question_list)):\n", " documents = retriever.get_relevant_documents(sub_question, k=10)\n", " generation += faiss_query(sub_question, documents, llm)\n", " generation += \"\\n\"\n", " \n", " return {\"progress_bar\": progress_bar, \"route\": route, \"documents\": documents, \"question\": question, \"generation\": generation}\n", "\n", "def company_private_data_get_sql_query(state):\n", " \"\"\"\n", " Get PostgreSQL query according to question\n", "\n", " Args:\n", " state (dict): The current graph state\n", "\n", " Returns:\n", " state (dict): return generated PostgreSQL query and record retry times\n", " \"\"\"\n", " # print(\"---SQL QUERY---\")\n", " progress_bar = show_progress(state, \"---SQL QUERY---\")\n", " if not state[\"route\"]:\n", " route = \"SQL\"\n", " else:\n", " route = state[\"route\"]\n", " question = state[\"question\"]\n", " \n", " if state[\"retry\"]:\n", " retry = state[\"retry\"]\n", " retry += 1\n", " else: \n", " retry = 0\n", " # print(\"RETRY: \", retry)\n", " \n", " sql_query = _get_query(question)\n", " \n", " return {\"progress_bar\": progress_bar, \"route\": route,\"sql_query\": sql_query, \"question\": question, \"retry\": retry}\n", " \n", "def company_private_data_search(state):\n", " \"\"\"\n", " Execute PostgreSQL query and convert to nature language.\n", "\n", " Args:\n", " state (dict): The current graph state\n", "\n", " Returns:\n", " state (dict): Appended sql results to state\n", " \"\"\"\n", "\n", " # print(\"---SQL TO NL---\")\n", " progress_bar = show_progress(state, \"---SQL TO NL---\")\n", " # print(state)\n", " question = state[\"question\"]\n", " sql_query = state[\"sql_query\"]\n", " generation = _query_to_nl(question, sql_query)\n", " \n", " # generation = [company_private_data_result]\n", " \n", " return {\"progress_bar\": progress_bar, \"sql_query\": sql_query, \"question\": question, \"generation\": generation}\n", "\n", "def additional_explanation_question(state):\n", " \"\"\"\n", " \n", " Args:\n", " state (_type_): _description_\n", " \n", " Returns:\n", " state (dict): Appended additional explanation to state\n", " \"\"\"\n", " \n", " # print(\"---ADDITIONAL EXPLANATION---\")\n", " progress_bar = show_progress(state, \"---ADDITIONAL EXPLANATION---\")\n", " # print(state)\n", " question = state[\"question\"]\n", " sql_query = state[\"sql_query\"]\n", " # print(sql_query)\n", " generation = state[\"generation\"]\n", " question_list = generate_additional_question(sql_query)\n", " # print(question_list)\n", " # generation += \"\\n\"\n", " # generation += generate_additional_detail(sql_query)\n", " \n", " \n", " # generation = [company_private_data_result]\n", " \n", " return {\"progress_bar\": progress_bar, \"sql_query\": sql_query, \"question\": question, \"generation\": generation, \"question_list\": question_list}\n", "\n", "def error(state):\n", " # print(\"---SOMETHING WENT WRONG---\")\n", " progress_bar = show_progress(state, \"---SOMETHING WENT WRONG---\")\n", " generation = \"很抱歉,目前我無法回答您的問題,請將您的詢問發送至 test@systex.com 以便獲得更進一步的幫助,謝謝。\"\n", " \n", " return {\"progress_bar\": progress_bar, \"generation\": generation}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Conditional edge" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "### Conditional edge\n", "\n", "\n", "def route_question(state):\n", " \"\"\"\n", " Route question to web search or RAG.\n", "\n", " Args:\n", " state (dict): The current graph state\n", "\n", " Returns:\n", " str: Next node to call\n", " \"\"\"\n", "\n", " # print(\"---ROUTE QUESTION---\")\n", " progress_bar = show_progress(state, \"---ROUTE QUESTION---\")\n", " question = state[\"question\"]\n", " # print(question)\n", " question_router = Router()\n", " source = question_router.invoke({\"question\": question})\n", " # print(source)\n", " print(source[\"datasource\"])\n", " if source[\"datasource\"] == \"自有數據\":\n", " # print(\"---ROUTE QUESTION TO TEXT-TO-SQL---\")\n", " progress_bar = show_progress(state, \"---ROUTE QUESTION TO TEXT-TO-SQL---\")\n", " return \"自有數據\"\n", " elif source[\"datasource\"] == \"專業知識\":\n", " # print(\"---ROUTE QUESTION TO RAG---\")\n", " progress_bar = show_progress(state, \"---ROUTE QUESTION TO RAG---\")\n", " return \"專業知識\"\n", " \n", "def grade_generation_v_documents_and_question(state):\n", " \"\"\"\n", " Determines whether the generation is grounded in the document and answers question.\n", "\n", " Args:\n", " state (dict): The current graph state\n", "\n", " Returns:\n", " str: Decision for next node to call\n", " \"\"\"\n", "\n", " # print(\"---CHECK HALLUCINATIONS---\")\n", " progress_bar = show_progress(state, \"---CHECK HALLUCINATIONS---\")\n", " question = state[\"question\"]\n", " documents = state[\"documents\"]\n", " generation = state[\"generation\"]\n", "\n", " \n", " # print(docs_documents)\n", " # print(generation)\n", " hallucination_grader = Hallucination_Grader()\n", " score = hallucination_grader.invoke(\n", " {\"documents\": documents, \"generation\": generation}\n", " )\n", " # print(score)\n", " grade = score[\"score\"]\n", "\n", " # Check hallucination\n", " if grade in [\"yes\", \"true\", 1, \"1\"]:\n", " # print(\"---DECISION: GENERATION IS GROUNDED IN DOCUMENTS---\")\n", " progress_bar = show_progress(state, \"---DECISION: GENERATION IS GROUNDED IN DOCUMENTS---\")\n", " # Check question-answering\n", " # print(\"---GRADE GENERATION vs QUESTION---\")\n", " progress_bar = show_progress(state, \"---GRADE GENERATION vs QUESTION---\")\n", " answer_grader = Answer_Grader()\n", " score = answer_grader.invoke({\"question\": question, \"generation\": generation})\n", " grade = score[\"score\"]\n", " if grade in [\"yes\", \"true\", 1, \"1\"]:\n", " # print(\"---DECISION: GENERATION ADDRESSES QUESTION---\")\n", " progress_bar = show_progress(state, \"---DECISION: GENERATION ADDRESSES QUESTION---\")\n", " return \"useful\"\n", " else:\n", " # print(\"---DECISION: GENERATION DOES NOT ADDRESS QUESTION---\")\n", " progress_bar = show_progress(state, \"---DECISION: GENERATION DOES NOT ADDRESS QUESTION---\")\n", " return \"not useful\"\n", " else:\n", " # pprint(\"---DECISION: GENERATION IS NOT GROUNDED IN DOCUMENTS, RE-TRY---\")\n", " progress_bar = show_progress(state, \"---DECISION: GENERATION IS NOT GROUNDED IN DOCUMENTS, RE-TRY---\")\n", " return \"not supported\"\n", " \n", "def grade_sql_query(state):\n", " \"\"\"\n", " Determines whether the Postgresql query are correct to the question\n", "\n", " Args:\n", " state (dict): The current graph state\n", "\n", " Returns:\n", " state (dict): Decision for retry or continue\n", " \"\"\"\n", "\n", " # print(\"---CHECK SQL CORRECTNESS TO QUESTION---\")\n", " progress_bar = show_progress(state, \"---CHECK SQL CORRECTNESS TO QUESTION---\")\n", " question = state[\"question\"]\n", " sql_query = state[\"sql_query\"]\n", " retry = state[\"retry\"]\n", "\n", " # Score each doc\n", " sql_query_grader = SQL_Grader()\n", " score = sql_query_grader.invoke({\"table_info\": table_description(), \"question\": question, \"sql_query\": sql_query})\n", " grade = score[\"score\"]\n", " # Document relevant\n", " if grade in [\"yes\", \"true\", 1, \"1\"]:\n", " # print(\"---GRADE: CORRECT SQL QUERY---\")\n", " progress_bar = show_progress(state, \"---GRADE: CORRECT SQL QUERY---\")\n", " return \"correct\"\n", " elif retry >= 5:\n", " # print(\"---GRADE: INCORRECT SQL QUERY AND REACH RETRY LIMIT---\")\n", " progress_bar = show_progress(state, \"---GRADE: INCORRECT SQL QUERY AND REACH RETRY LIMIT---\")\n", " return \"failed\"\n", " else:\n", " # print(\"---GRADE: INCORRECT SQL QUERY---\")\n", " progress_bar = show_progress(state, \"---GRADE: INCORRECT SQL QUERY---\")\n", " return \"incorrect\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Graph" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "\n", "from langgraph.pregel import RetryPolicy\n", "\n", "workflow = StateGraph(GraphState)\n", "\n", "# Define the nodes\n", "workflow.add_node(\"Text-to-SQL\", company_private_data_get_sql_query, retry=RetryPolicy(max_attempts=5)) # web search\n", "workflow.add_node(\"SQL Answer\", company_private_data_search, retry=RetryPolicy(max_attempts=5)) # web search\n", "workflow.add_node(\"Additoinal Explanation\", additional_explanation_question, retry=RetryPolicy(max_attempts=5)) # retrieve\n", "workflow.add_node(\"RAG\", retrieve_and_generation, retry=RetryPolicy(max_attempts=5)) # retrieve\n", "workflow.add_node(\"ERROR\", error) # retrieve\n", "\n", "workflow.add_conditional_edges(\n", " START,\n", " route_question,\n", " {\n", " \"自有數據\": \"Text-to-SQL\",\n", " \"專業知識\": \"RAG\",\n", " },\n", ")\n", "\n", "workflow.add_conditional_edges(\n", " \"RAG\",\n", " grade_generation_v_documents_and_question,\n", " {\n", " \"not supported\": \"ERROR\",\n", " \"useful\": END,\n", " \"not useful\": \"ERROR\",\n", " },\n", ")\n", "workflow.add_conditional_edges(\n", " \"Text-to-SQL\",\n", " grade_sql_query,\n", " {\n", " \"correct\": \"SQL Answer\",\n", " \"incorrect\": \"ERROR\",\n", " \"failed\": \"RAG\"\n", " \n", " },\n", ")\n", "workflow.add_edge(\"SQL Answer\", \"Additoinal Explanation\")\n", "workflow.add_edge(\"Additoinal Explanation\", \"RAG\")\n", "\n", "app = workflow.compile() \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "from langgraph.pregel import RetryPolicy\n", "\n", "workflow = StateGraph(GraphState)\n", "\n", "# Define the nodes\n", "workflow.add_node(\"Text-to-SQL\", company_private_data_get_sql_query, retry=RetryPolicy(max_attempts=5)) # web search\n", "workflow.add_node(\"SQL Answer\", company_private_data_search, retry=RetryPolicy(max_attempts=5)) # web search\n", "workflow.add_node(\"Additoinal Explanation\", additional_explanation, retry=RetryPolicy(max_attempts=5)) # retrieve\n", "workflow.add_node(\"RAG\", retrieve_and_generation, retry=RetryPolicy(max_attempts=5)) # retrieve\n", "# workflow.add_node(\"grade_generation\", grade_documents) # grade documents\n", "# workflow.add_node(\"generate\", generate) # generatae\n", "\n", "workflow.add_conditional_edges(\n", " START,\n", " route_question,\n", " {\n", " \"自有數據\": \"Text-to-SQL\",\n", " \"專業知識\": \"RAG\",\n", " },\n", ")\n", "\n", "workflow.add_conditional_edges(\n", " \"RAG\",\n", " grade_generation_v_documents_and_question,\n", " {\n", " \"not supported\": \"RAG\",\n", " \"useful\": END,\n", " \"not useful\": \"RAG\",\n", " },\n", ")\n", "workflow.add_conditional_edges(\n", " \"Text-to-SQL\",\n", " grade_sql_query,\n", " {\n", " \"correct\": \"SQL Answer\",\n", " \"incorrect\": \"Text-to-SQL\",\n", " \"failed\": \"RAG\"\n", " \n", " },\n", ")\n", "workflow.add_edge(\"SQL Answer\", \"Additoinal Explanation\")\n", "workflow.add_edge(\"Additoinal Explanation\", END)\n", "\n", "\n", "\n", "# workflow.add_edge(\"company_private_data_search\", END)\n", "\n", "app = workflow.compile()" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "%%{init: {'flowchart': {'curve': 'linear'}}}%%\n", "graph TD;\n", "\t__start__([__start__]):::first\n", "\tText-to-SQL(Text-to-SQL)\n", "\tSQL_Answer(SQL Answer)\n", "\tAdditoinal_Explanation(Additoinal Explanation)\n", "\tRAG(RAG)\n", "\tERROR(ERROR)\n", "\t__end__(__end__)\n", "\tAdditoinal_Explanation --> RAG;\n", "\tSQL_Answer --> Additoinal_Explanation;\n", "\t__start__ -.  自有數據  .-> Text-to-SQL;\n", "\t__start__ -.  專業知識  .-> RAG;\n", "\tRAG -.  not supported  .-> ERROR;\n", "\tRAG -.  useful  .-> __end__;\n", "\tRAG -.  not useful  .-> ERROR;\n", "\tText-to-SQL -.  correct  .-> SQL_Answer;\n", "\tText-to-SQL -.  incorrect  .-> ERROR;\n", "\tText-to-SQL -.  failed  .-> RAG;\n", "\tclassDef default fill:#f2f0ff,line-height:1.2\n", "\tclassDef first fill-opacity:0\n", "\tclassDef last fill:#bfb6fc\n", "\n" ] } ], "source": [ "print(app.get_graph().draw_mermaid())" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "Image(\n", " app.get_graph().draw_mermaid_png(\n", " draw_method=MermaidDrawMethod.API,\n", " output_file_path=\"agent_workflow.png\",\n", " )\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "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7FsLZG0IntY0YTu8Tg1yPPlve3ju+9tQc75tul9Mn4ZmzZz5rkzFxlChHIC508znBoaA1pPALhy4+QB5JC8mFo7fkOomxUchgqmK02pAxmMyvpwms3pyGuc4xBoDI29zmkOIPczy5DuRJNE6fU9G1XD4V16/sL8X3uiyedmFq657y4ue6UgHuPe4cjjyPHuUpQYZmr1wxodLK53HmQQOT+LhfXqxV++Tfyh+pZdEGI9WKv3yb+UP1J6sVfvk38ofqWXRBiPVir98m/lD9SerFX75N/KH6ll0QYj1Yq/fJv5Q/UsjUrNp12QsJLW88F3v9/K7kQEREBERAREQEREBERAREQFHeov+T7Z/4Ltf9pykSjvUX/J9s/8ABdr/ALTkFdfI0/zXunP8Ft/puVzqmPkaf5r3Tn+C2/03K50BERAREQEREBERAREQEREBERAREQEREBERAREQEREBVl1exWEyOz9OJcttc2uWaudZLQqROIGUm7HcV3fSCOT+RWaqy6vZXCY7Z+nEWW1SbY7NrOsioW4mkjFzdjuLDvoAHI/Kgs1ERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQFHeov+T7Z/wCC7X/acpEo71F/yfbP/Bdr/tOQV18jT/Ne6c/wW3+m5XOqY+Rp/mvdOf4Lb/TcrnQEREBERAREQEREBERAREQEREBERAREQEREBERAREQFC9/9dvnrUPVP0L5t+dG/P3pXHd6F2nnw+f33dx7lNFWXV7FYTI7P04ly21za5Zq51ktCpE4gZSbsdxXd9II5P5EFmoiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIuCeByfIKGy7tlcg7xcHhK9ygf3O1evOreMP9JjWxSEtPwJ4594HBBO23aru+7+I+6xGUzRQr1o236uYf8ATUv7KnrRtv1cw/6al/ZVu7Ld8PNTzXCaooV60bb9XMP+mpf2VPWjbfq5h/01L+yp2W74eanmYTVFCvWjbfq5h/01L+yp60bb9XMP+mpf2VOy3fDzU8zCaooV60bb9XMP+mpf2VPWjbfq5h/01L+yp2W74eanmYTVfnd/dV+kdyexrHUqr3TVIYBg7zAOfB9uSWF/u9xL5WknyBDB++W7nrRt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", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from IPython.display import Image, display\n", "from langchain_core.runnables.graph import CurveStyle, MermaidDrawMethod, NodeStyles\n", "\n", "display(\n", " Image(\n", " app.get_graph().draw_mermaid_png(\n", " draw_method=MermaidDrawMethod.API,\n", " output_file_path=\"agent_workflow.png\",\n", " )\n", " )\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "---ROUTE QUESTION---\n", "建準去年的類別八排放量\n", "{'datasource': 'company_private_data'}\n", "company_private_data\n", "---ROUTE QUESTION TO TEXT-TO-SQL---\n", "---SQL QUERY---\n", "RETRY: 0\n", "SELECT SUM(\"排放量(公噸CO2e)\") AS \"類別8總排放量\"\n", "FROM \"104_112碳排放公開及建準資料\"\n", "WHERE \"事業名稱\" like '%建準%'\n", "AND \"年度\" = EXTRACT(YEAR FROM CURRENT_DATE)-1\n", "AND \"類別\" = '類別8-';\n", "---CHECK SQL CORRECTNESS TO QUESTION---\n", "---GRADE: CORRECT SQL QUERY---\n", "'Finished running: company_private_data_query:'\n", "---SQL TO NL---\n", "{'question': '建準去年的類別八排放量', 'generation': None, 'documents': None, 'retry': 0, 'sql_query': 'SELECT SUM(\"排放量(公噸CO2e)\") AS \"類別8總排放量\"\\nFROM \"104_112碳排放公開及建準資料\"\\nWHERE \"事業名稱\" like \\'%建準%\\'\\nAND \"年度\" = EXTRACT(YEAR FROM CURRENT_DATE)-1\\nAND \"類別\" = \\'類別8-\\';'}\n", "[(None,)]\n", "'Finished running: company_private_data_search:'\n", "('SELECT SUM(\"排放量(公噸CO2e)\") AS \"類別8總排放量\"\\n'\n", " 'FROM \"104_112碳排放公開及建準資料\"\\n'\n", " 'WHERE \"事業名稱\" like \\'%建準%\\'\\n'\n", " 'AND \"年度\" = EXTRACT(YEAR FROM CURRENT_DATE)-1\\n'\n", " 'AND \"類別\" = \\'類別8-\\';',\n", " '[(None,)]',\n", " '根據 SQL '\n", " '查詢和結果,去年建準的類別八排放量為空,可能是資料庫中沒有符合條件的資料。建議檢查資料庫中是否有符合條件的資料,或調整查詢條件以確保能夠正確查詢到相應的數據。')\n" ] } ], "source": [ "# Test\n", "\n", "inputs = {\"question\": \"建準去年的類別八排放量\"}\n", "for output in app.stream(inputs, {\"recursion_limit\": 10}):\n", " for key, value in output.items():\n", " pprint(f\"Finished running: {key}:\")\n", "pprint(value[\"generation\"])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'建準去年的類別一排放量是13.5953。'" ] }, "execution_count": 181, "metadata": {}, "output_type": "execute_result" } ], "source": [ "value[\"generation\"]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'stop' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[27], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mstop\u001b[49m\n", "\u001b[0;31mNameError\u001b[0m: name 'stop' is not defined" ] } ], "source": [ "stop" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# from RAG_strategy import multi_query_chain\n", "llm = ChatOllama(model=local_llm, temperature=0)\n", "question = \"溫室氣體是什麼\"\n", "generate_queries = multi_query_chain(llm)\n", "\n", "questions = generate_queries.invoke(question)\n", "questions" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def ask_more_detail_chain(llm):\n", " # Multi Query: Different Perspectives\n", " template = \"\"\"\n", " <|begin_of_text|>\n", " \n", " <|start_header_id|>system<|end_header_id|>\n", " 你是一個來自台灣的AI助理,你的專長是根據使用者提供的文本來進一步詢問當中的細節,例如名詞解釋,請用繁體中文。 \\n\n", " You are an AI language model assistant. \n", " Your task is to generate three questions about the given user context as additional explanation.\n", " By generating three in-depth questions about the user context, your goal is to help the user realize more details. \n", " Provide these questions separated by newlines.\n", " For example:\n", " context: 建準廣興廠去年2023年一共自產發電了684,508度綠電\n", " in-depth question:什麼是綠電?\\n為何要使用綠電? \n", "\n", " output must in user's language and no preamble or explanation.\n", " <|eot_id|>\n", " \n", " <|start_header_id|>user<|end_header_id|>\n", " \n", " \n", " \n", " Original context: {question}\n", " three questions:\n", " <|eot_id|>\n", " \n", " <|start_header_id|>assistant<|end_header_id|>\"\"\"\n", " prompt_perspectives = ChatPromptTemplate.from_template(template)\n", "\n", " \n", " # llm = ChatOpenAI(temperature=0, model=\"gpt-4-1106-preview\")\n", " # llm = ChatOllama(model=\"llama3\", num_gpu=1, temperature=0)\n", "\n", " generate_queries = (\n", " prompt_perspectives \n", " | llm\n", " | StrOutputParser() \n", " | (lambda x: x.split(\"\\n\"))\n", " )\n", "\n", " return generate_queries" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "llm = ChatOllama(model=local_llm, temperature=0)\n", "question = \"建準廣興廠去年的固定燃燒排放量是多少?\"\n", "generate_queries = ask_more_detail_chain(llm)\n", "\n", "questions = generate_queries.invoke(question)\n", "questions" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "llm = ChatOllama(model=local_llm, temperature=0)\n", "question = \"固定燃燒是什麼?\"\n", "docs = retriever.get_relevant_documents(question, k=10)\n", "generation = faiss_query(question, docs, llm)\n", "generation" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import datetime\n", "from typing import Literal, Optional, Tuple\n", "\n", "from langchain_core.pydantic_v1 import BaseModel, Field\n", "\n", "\n", "class SubQuery(BaseModel):\n", " \"\"\"Search over a database of tutorial videos about a software library.\"\"\"\n", "\n", " sub_query: str = Field(\n", " ...,\n", " description=\"A very specific query against the database.\",\n", " )" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[SubQuery(sub_query='建準去年的類別一排放量是多少?'), SubQuery(sub_query='溫室氣體是什麼?')]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from langchain.output_parsers import PydanticToolsParser\n", "from langchain_core.prompts import ChatPromptTemplate\n", "from langchain_openai import ChatOpenAI\n", "from dotenv import load_dotenv\n", "\n", "load_dotenv()\n", "\n", "system = \"\"\"You are an expert at converting user questions into database queries. \\\n", "\n", "Perform query decomposition. Given a user question, break it down into distinct sub questions that \\\n", "you need to answer in order to answer the original question.\n", "\n", "If there are acronyms or words you are not familiar with, do not try to rephrase them.\n", "用繁體中文.\n", "\"\"\"\n", "prompt = ChatPromptTemplate.from_messages(\n", " [\n", " (\"system\", system),\n", " (\"human\", \"{question}用繁體中文\"),\n", " ]\n", ")\n", "llm = ChatOpenAI(model=\"gpt-3.5-turbo-0125\", temperature=0.5)\n", "llm_with_tools = llm.bind_tools([SubQuery])\n", "parser = PydanticToolsParser(tools=[SubQuery])\n", "query_analyzer = prompt | llm_with_tools | parser\n", "\n", "query_analyzer.invoke({\"question\": \"建準去年的類別一排放量?溫室氣體是什麼?\"})" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[SubQuery(sub_query='什麼是溫室氣體'), SubQuery(sub_query='去年的類別一排放量是多少')]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "query_analyzer.invoke({\"question\": \"溫室氣體是什麼?建準去年的類別一排放量?\"})" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "query_analyzer.invoke({\"question\": \"建準去年的類別一排放量?\"})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "You have access to a database of tutorial videos about a software library for building LLM-powered applications. \\" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# SQL parse" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['SUM']\n", "('固定燃燒', None)\n", "\"104_112碳排放公開及建準資料\"\n" ] } ], "source": [ "\n", "import sqlparse\n", "from sqlparse.sql import Comparison, Parenthesis, Token\n", "from sqlparse.tokens import Literal\n", "from langchain_community.utilities import SQLDatabase\n", "\n", "from dotenv import load_dotenv\n", "import os\n", "load_dotenv()\n", "# URI = os.getenv(\"SUPABASE_URI\")\n", "# db = SQLDatabase.from_uri(URI, sample_rows_in_table_info=5)\n", "\n", "def get_query_columns(sql, get_real_name=False):\n", " stmt = sqlparse.parse(sql)[0]\n", " columns = []\n", " column_identifiers = []\n", "\n", " # get column_identifieres\n", " in_select = False\n", " for token in stmt.tokens:\n", " if isinstance(token, sqlparse.sql.Comment):\n", " continue\n", " if str(token).lower() == 'select':\n", " in_select = True\n", " elif in_select and token.ttype is None:\n", " if isinstance(token, sqlparse.sql.IdentifierList):\n", " for identifier in token.get_identifiers():\n", " column_identifiers.append(identifier)\n", " else:\n", " column_identifiers.append(token)\n", "\n", " break\n", "\n", " # get column names\n", " for column_identifier in column_identifiers:\n", " if get_real_name:\n", " columns.append(column_identifier.get_real_name())\n", " else:\n", " columns.append(column_identifier.get_name())\n", "\n", " return columns\n", "\n", "\n", "def extract_comparison_value(tokens, target):\n", " \"\"\"Helper function to extract value based on a comparison target.\"\"\"\n", " is_target = False\n", " for token in tokens:\n", " if token.value.strip(\"'\\\"\") == target:\n", " is_target = True\n", " elif is_target and token.ttype is Literal.String.Single:\n", " return token.value.strip(\"'\\\"\")\n", " elif is_target and isinstance(token, Parenthesis):\n", " data = db.run(token.value.strip(\"()\"))\n", " return eval(data)[0][0]\n", " return None\n", "\n", "def parse_sql_for_stock_info(sql):\n", " \"\"\"Parse the SQL statement to extract 排放源, 類別\"\"\"\n", " stmt = sqlparse.parse(sql)[0]\n", " emission, class_type = None, None\n", " \n", " for token in stmt.tokens:\n", " if isinstance(token, sqlparse.sql.Comment):\n", " continue\n", " if token.value.lower().startswith('where'):\n", " for token2 in token.tokens:\n", " if isinstance(token2, Comparison):\n", " if emission is None:\n", " emission = extract_comparison_value(token2.tokens, \"排放源\")\n", " if class_type is None:\n", " class_type = extract_comparison_value(token2.tokens, \"類別\")\n", " return emission, class_type\n", "\n", "def get_table_name(sql):\n", " stmt = sqlparse.parse(sql)[0]\n", "\n", " in_from = False\n", " for token in stmt.tokens:\n", " if isinstance(token, sqlparse.sql.Comment):\n", " continue\n", " if str(token).lower() == 'from':\n", " in_from = True\n", " elif in_from and token.ttype is None:\n", " if isinstance(token, sqlparse.sql.Identifier):\n", " # print(token, token.ttype)\n", " return token.value\n", "\n", "if __name__ == \"__main__\":\n", " sql_query = \"\"\"\n", " SELECT SUM(\"排放量(公噸CO2e)\") AS \"固定燃燒總排放量\"\n", " FROM \"104_112碳排放公開及建準資料\"\n", " WHERE \"事業名稱\" like '%建準%'\n", " AND \"排放源\" = '固定燃燒'\n", " AND \"盤查標準\" = 'GHG'\n", " AND \"年度\" = EXTRACT(YEAR FROM CURRENT_DATE)-1;\n", " \"\"\"\n", " \n", " print(get_query_columns(sql_query, get_real_name=True))\n", " print(parse_sql_for_stock_info(sql_query))\n", " print(get_table_name(sql_query))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "sql_query = \"\"\"SELECT SUM(\"排放量(公噸CO2e)\") AS \"固定燃燒總排放量\"\n", " FROM \"104_112碳排放公開及建準資料\"\n", " WHERE \"事業名稱\" like '%建準%'\n", " AND (\"類別\" like '固定燃燒1' or \"排放源\" like '固定燃燒2')\n", " AND \"盤查標準\" = 'GHG'\n", " AND \"年度\" = EXTRACT(YEAR FROM CURRENT_DATE)-1;\"\"\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "dict = {\n", " \"排放源\": None,\n", " \"類別\": None\n", "}" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "排放源\n", "類別\n" ] } ], "source": [ "for column_name in dict.keys():\n", " print(column_name)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def get_column_details(token, column_args):\n", " if isinstance(token, Comparison):\n", " print(token, type(token))\n", " for column_name in column_args.keys():\n", " if column_args[column_name] is None:\n", " column_args[column_name] = extract_comparison_value(token.tokens, column_name)\n", " \n", " return column_args" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\"事業名稱\" like '%建準%' \n", "\"類別\" like '固定燃燒1' \n", "\"排放源\" like '固定燃燒2' \n", "\"盤查標準\" = 'GHG' \n", "\"年度\" = EXTRACT(YEAR FROM CURRENT_DATE) \n" ] } ], "source": [ "\"\"\"Parse the SQL statement to extract 排放源, 類別\"\"\"\n", "stmt = sqlparse.parse(sql_query)[0]\n", "emission, class_type = None, None\n", "column_dict = {\n", " \"排放源\": None,\n", " \"類別\": None\n", "}\n", "\n", "def get_column_details(token, column_args):\n", " if isinstance(token, Comparison):\n", " print(token, type(token))\n", " for column_name in column_args.keys():\n", " if column_args[column_name] is None:\n", " column_args[column_name] = extract_comparison_value(token.tokens, column_name)\n", " \n", " return column_args\n", "\n", "for token in stmt.tokens:\n", " if isinstance(token, sqlparse.sql.Comment):\n", " continue\n", " if token.value.lower().startswith('where'):\n", " for token2 in token.tokens:\n", " # print(token2, type(token2))\n", " if isinstance(token2, Comparison):\n", " column_dict = get_column_details(token2, column_dict)\n", " elif isinstance(token2, Parenthesis):\n", " # print(token2, type(token2))\n", " for token3 in token2.tokens:\n", " column_dict = get_column_details(token3, column_dict)\n", " \n", " # print(token2)\n", " " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'排放源': '固定燃燒2', '類別': '固定燃燒1'}" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "column_dict" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['固定燃燒2', '固定燃燒1']" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "column_value = [column_dict[column_name] for column_name in column_dict.keys()]\n", "column_value" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(None, None)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "parse_sql_for_stock_info(sql_query)" ] } ], "metadata": { "kernelspec": { "display_name": "llama3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.4" } }, "nbformat": 4, "nbformat_minor": 2 }