三分鐘免費將 Claude API 接入個人服務

首先我們介紹一下今天的主角 Claude

Claude 是最近新開放的一款 AI 聊天機器人,是世界上最大的語言模型之一,比之前的一些模型如 GPT-3 要強大得多,因此 Claude 被認爲是 ChatGPT 最有力的競爭對手。Claude 的研發公司是專注人工智能安全和研究的初創公司 Anthropic,由前 OpenAI 員工共同創立的。今年 3 月份 Anthropic 獲得了谷歌 3 億美元的投資,谷歌也因此獲得其 10% 股份。

據官方介紹,Claude 的核心模型經由訓練,目標是變得有用、誠實和無害。此外 Claude 更能理解和接受自然語言,和它對話無需複雜的技巧,可以輕鬆得到詳細且易於理解的答案。

與 ChatGPT 等大型語言模型一樣,Claude 的應用場景非常廣泛,信息搜索、內容總結摘要、寫作協助、創意生成、問答、編程這些任務它都能輕鬆完成。目前 Claude 已經被應用在多個知名產品中,比如知識筆記工具 Notio AI 就是用 Claude 協助用戶進行智能寫作,國外問答社區 Quora 也在自己的 AI 聊天應用程序 Poe 中置入了 Claude。

劃重點:Claude 是免費的,至少目前是這樣

瞭解完後我們開始操作

第一步:註冊Slack

slack官網地址:https://slack.com/

註冊時儘量選擇使用 google 的 gmail 郵箱,後續操作的成功率高。不要使用 qq 等國產郵箱。

第二步:創建工作區

工作區是一個獨立的協作環境,每個工作區有自己的渠道(Channels)、成員、權限設置等。不同工作區之間彼此隔離,成員和資源不共享。





至此,工作區就創建好了!

第三步:添加Claude應用到工作區(這一步需要魔法)

打開 Slack-Claude 官方網址(請自備梯子): https://www.anthropic.com/claude-in-slack

然後授權添加 Claude 到 Slack。

如果出現以下界面,說明當前 ip 被封鎖了。請自行切換節點,嘗試使用全局代理,切換無痕瀏覽等方法。

換了個瀏覽器,果然好了。點擊允許,出現 Success 就成功了。

第四步:開通高級功能

回到工作區頁面,左側會自動出現 Claude 應用,此時聊天會發現 Claude 是不會回覆任何消息的。

解決方案:點擊左側 Slack Connect,沒有這個選項的話,就點擊瀏覽 Slack,在下拉框裏找到 Slack Connect。



社區小夥伴的經歷告訴我,這個地方有的賬戶沒有免費試用的機會,但我創建了幾個工作區了,都可以免費試用,可能是因爲試用的 gmail 郵箱吧。沒有就重新註冊新賬號,或新建工作區走流程嘗試,有錢就無所謂。所以前面註冊時會讓你儘量使用 gmail 郵箱。


創建完畢之後在左側找到剛剛新建的頻道,然後我們爲這個頻道添加 Claude 應用。



添加完畢後進入剛建的頻道,激活高級功能。

OK 到這一步,你已經可以愉快的在 Slack 中和 Claude 聊天啦,但我們的目的是在自己的項目中接入,所以還需要稍微的再操作一下!

第五步:接入 API

雖然 Claude 暫時還沒開放 API ,我們可以用一點其他的辦法。

我們使用 Laf 提供的雲函數接入api,開發速度更快。2023年了,如果你還不知道 Laf,那我只能再講一遍了。

Laf 是一個 Serverless 框架,提供開箱即用的雲函數,雲數據庫,對象存儲等能力,是一個非常乾淨清爽的開發平臺,不僅入門簡單,還能像寫博客一樣寫代碼!life is short, you need laf:)

🏠官網(國內):https://laf.run

🌎官網(海外):https://laf.dev

下面讓我們開始操作~

創建雲函數

添加依賴claude-api-slack

寫入以下代碼
這段代碼很簡單,看註釋就懂了。除了雲函數部分,主要代碼在普通 nodejs 中也同樣適用。

import cloud from '@lafjs/cloud'

// 雲函數入口代碼
// 接收一個question,和一個可選的上下文id:conversationId
export default async function (ctx: FunctionContext) {
  const { question, conversationId } = ctx.query
  return await askCluadeAPi(question, conversationId)
}
// 調用api的主要代碼
async function askCluadeAPi(question, conversationId) {
  // 見以下第一個步驟,授權以及獲取user-token 步驟
  const token = 'xoxp-xxxxxx'
  // 見以下第二個步驟,獲取claude appid
  const bot = 'U0xxxxxx'
  // chatId就是工作區間裏新建的渠道。channel名稱
  const chatId = 'ai聊天'

  // 初始化claude
  const { Authenticator } = await import('claude-api-slack')

  // 通過緩存保存客戶端,可以避免每次提問都是在新會話
  let claudeClient = cloud.shared.get('claudeClient')
  if (!claudeClient) {
    claudeClient = new Authenticator(token, bot)
    cloud.shared.set('claudeClient', claudeClient)
  }
  // 創建頻道並返回房間ID:channel
  const channel = await claudeClient.newChannel(chatId)

  let result
  if (conversationId) {
    result = await claudeClient.sendMessage({
      text: question,
      channel,
      conversationId,
      onMessage: (originalMessage) => {
        console.log("loading", originalMessage)
      }
    })
  } else {
    result = await claudeClient.sendMessage({
      text: question,
      channel,
      onMessage: (originalMessage) => {
        // console.log("loading", originalMessage)
        console.log("loading", originalMessage)
      }
    })
  }
  console.log("success", result)
  return {
    code: 0,
    msg: result.text,
    conversationId: result.conversationId
  }
}

授權以及獲取user-token

  • 輸入 App Name,選擇前面創建的工作空間,點擊 Create App

  • 點擊左側邊欄的 OAuth & Permissions
  • 找到 Scopes 模塊下的 User Token Scopes,點擊 Add an OAuth Scopes 按鈕,依次搜索添加以下權限
channels:history
channels:read
channels:write
groups:history
groups:read
groups:write
chat:write
im:history
im:write
mpim:history
mpim:write

注意:這裏的搜索是模糊搜索,選擇權限時不要搞錯了

  • 點擊OAuth Tokens for Your Workspace下的Install to Workspace按鈕,確認授權

至此,你就擁有了一串User OAuth Token,找到OAuth Tokens for Your Workspace

獲取 claude appid

第六步:測試


ok 寫到這裏,我們只需要點擊右上角的發佈,就可以在任何地方調用這個雲函數,把 claude 接入到自己的項目中了!

如果你也想接入 claude ,可以點擊這個鏈接(https://forum.laf.run/d/648) 報名,跟社區同學一起交流,還有機會贏取豐厚的獎品。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章