前段时间 Claude 很火,在知乎上被说成是 ChatGPT 的最强对手,是 ChatGPT 的替代品。本文我将介绍下 Claude 是什么,以及如何免费使用 Claude。
当然本篇文章肯定不会只说这些无聊的内容,最后我会实践下如何免费接入我们的 web 服务。注意,这里接入是在没有申请到 api 的情况下做的。
我们让 Claude 自我介绍下:
Claude 是一款开源的中文聊天机器人。它由 Anthropic 开发,用于自然对话和问答。Claude 具有以下主要功能:
1. 自然语言理解能力。claude 可以理解人类的自然语言,并作出相应的响应。
2. 知识图谱。claude 内置了大量常识知识,这些知识来源于维基百科和其他开放数据源。
3. 智能问答。claude 可以自动回答关于常识知识的问题。如果它没有找到准确的答案,它会说“我不知道”。
4. 可扩展的知识。claude 的知识是动态扩展的,会随着时间的推移而不断丰富。
5. 中文支持。claude 可以理解和生成中文文本,这是它区别于其他机器人的一个重要特点。
6. 个性管理。claude 有不同的语言风格和个性,用户可以选择不同的语言风格和个性。
7. 安全考虑。claude 在回答问题和生成响应时会考虑安全和道德因素。它不会生成任何有害、欺诈、危险或非法的内容。
讯享网
Slack 是一款流行的团队协作和通讯软件。
Claude 官方给我定义了很方便的 Slack 应用 Claude-in-Slack,我们直接把它添加到 Slack 中即可使用。添加的操作也很简单:
- 先注册 Slack
- 到 Claude 官网,点击
Add to Slack - 在跳转的页面点击 添加到 Slack
- 在 Slack 中选择 Claude 应用,进入聊天窗口开始使用
当然这些内容在搜索引擎上能检索出一大堆,那我写这篇文章干啥呢,就为了水一篇吗? 当然不是,标题是如何接入到个人服务,这里说的当然不是仅仅通过 slack 使用。
虽然 Claude 开放了 API 的申请,我的 ChatGPT 4.0 API 都通过了,Claude API 还是没有下文。但是我想接入到我的服务中,只是通过 slack 来使用的话,显然不满足我的需求。
难道没有 API 权限就无法使用了吗?
我在查询了各大论坛,直到看到一个网友说:
Slack 为我们提供了各个语言的 SDK,我们以 python-slack-sdk 来作为演示示例。代码会提供在 GitHub,觉得有用的大伙给个 Star 吧。
为了使用 Slack 的 SDK,我们需要新建一个 Slack APP。
输入 app 名称并选择自己的 workspace。
创建后点击我们的 APP,然后点击左侧栏的 OAuth & Permissions。下拉找到 Scopes,为我们的 User Token 添加 Scope。
这里 Slack 下面也说了,可以根据使用到的 API 来选择 scope。具体 API 对应的 scope 大家可以自行通过 Slack API methods 了解。本次演示我只用到了如下 API:
conversations.open:打开会话。依赖 scopes:
channels:write
chat.postMessage:频道内发送消息。依赖 scopes: chat:writeim:write
conversations.history:获取对话的消息和事件历史记录。依赖 scopes: channels:historyim:history
我们把依赖的三个 scopes,依次添加到 User Token Scopes 中。
然后我们把 APP 安装到我们的 workspace 中:
安装后,这里会生成我们需要的 User OAuth Token,我们复制这个 Token,后面需要用。
我们进入我们的 Slack 应用页面,找到我们的 Claude 应用,右击然后选择查看应用详情,复制 Claude 的成员 ID。后面需要用到。
走完上面的流程后,我们已经拿到了我们需要的两个值。
- User Token
- Claude Bot ID
下面就开始开发我们的服务了。
首先,我们要先通过 API 开启我们的会话。因为我的服务都是 async 的,这里我选择使用 Slack-SDK 的AsyncWebClient客户端类。我们定义 Client 类封装下:
from slack_sdk.web.async_client import AsyncWebClient from slack_sdk.errors import SlackApiError
讯享网
CLAUDE_BOT_ID = “xxxxxxx” # 我们上面获取到的 Claude Bot ID
class SlackClient(AsyncWebClient):
讯享网CHANNEL_ID = None # 属性:频道ID
我们通过 sdk 提供的conversations_open 来打开频道会话:
async def open_channel(self):
讯享网response = await self.conversations_open(users=CLAUDE_BOT_ID) self.CHANNEL_ID = response["channel"]["id"]
通过chat_postMessage发送消息:
async def chat(self, text):
讯享网if not self.CHANNEL_ID: raise Exception("Channel not found.") resp = await self.chat_postMessage(channel=self.CHANNEL_ID, text=text) self.LAST_TS = resp["ts"]
这里我们记录下我们消息的时间,用于后面获取回复时作为参数。
这里我们循环去获取 Claude 最新的回复消息列表,我们取最后一条结果:
async def get_reply(self):
讯享网for _ in range(150): try: resp = await self.conversations_history(channel=self.CHANNEL_ID, oldest=self.LAST_TS, limit=2) msg = [msg["text"] for msg in resp["messages"] if msg["user"] == CLAUDE_BOT_ID] if msg and not msg[-1].endswith("Typing…_"): return msg[-1] except (SlackApiError, KeyError) as e: print(f"Get reply error: {e}") await asyncio.sleep(2)
raise Exception(“Get replay timeout”)
我设定了 300 秒内,无响应则抛出异常。
async def server(): client = SlackClient(token=getenv(“SLACK_USER_TOKEN”)) # 自己的Token await client.open_channel() while True: prompt = input(“You: ”) await client.chat(prompt)
reply = await client.get_reply() print(f“Claude: {reply}\n——————–”)
asyncio.run(server())
可以看到我已经成功和 Claude 交流了。这样的话我们的目的就达成了,后面怎么把它接入我们的自己的系统,大家可以自由发挥。
这里我给大家部署了个单进程 api 服务(不会长期开启),大家可以体验下 Claude 的能力。
有多并发可能会消息错乱,只作为 demo 使用。对话完记得调用清除接口清空会话。
讯享网curl -X ‘POST’
‘https://claude.yokonsan.com/claude/chat'
-H ’accept: application/json‘
-H ’x-token: 13832bf5-ed7c-4b5c-a30b-e7db48d25b86‘
-H ’Content-Type: application/json‘
-d ’{ “prompt”: “你好” }‘
curl -X ’POST‘
’https://claude.yokonsan.com/claude/reset'
-H ‘x-token: 13832bf5-ed7c-4b5c-a30b-e7db48d25b86’
-H ‘accept: application/json’
-d ‘’
本文介绍了 Claude,以及如何在 Slack 中免费使用 Claude。然后我带大家搭建了自己的个人 Claude 服务,演示如何将 Claude 免费接入自己的系统。
大家可以在 GitHub 我的仓库 claude-in-slack-api查看我的代码,大家觉得有用的话,可以点个 star。
Claude 虽然被吹捧的很高,但对比下还是比 ChatGPT 差很多。大家自行多多体验。
本文转载自个人公众号:
Claude|媲美ChatGPT,如何免费接入到个人服务
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/209178.html