MetaAI API 封装
MetaAI 是一个 Python 库,旨在与 Meta 的 AI API 交互,这些 API 在 https://www.meta.ai/ 的后端运行。它封装了身份验证和与 API 通信的复杂性,为发送查询和接收响应提供了一个简单的接口。
使用这个库,您可以轻松地从 Python 代码中向 AI 发送消息并获得响应。无需 API 密钥
Meta AI 连接到互联网,因此您将能够从 AI 获得最新的实时响应。(由 Bing 提供支持)
Meta AI 运行的是 Llama 3 LLM。
特性
- 提示 AI:向 AI 发送消息并从 Llama 3 获得响应。
- 图像生成:使用 AI 生成图像。(仅适用于 FB 认证用户)
- 获取最新信息:通过 AI 连接到互联网,获取最新信息。
- 获取来源:获取 AI 提供信息的来源。
- 流式传输:实时流式传输 AI 的响应或获取最终响应。
- 跟进对话:开始新对话或跟进现有对话。
使用方法
下载:
pip install meta-ai-api
初始化:
from meta_ai_api import MetaAI
ai = MetaAI()
response = ai.prompt(message="今天旧金山的天气如何?现在是几号?")
print(response)
{
"message":"今天旧金山的天气从晴朗到多云不等,无降水,风速在0到8英里/小时之间,气温在华氏51到55度(摄氏10到13度)之间¹。今天是2024年4月19日星期五²。请注意,天气预报是持续变化的³ ⁴ ⁵ ⁶。\n",
"sources":[
{
"link":"https://www.wolframalpha.com/input?i=San+Francisco+weather+today+and+date",
"title":"WolframAlpha"
},
{
"link":"https://www.timeanddate.com/weather/usa/san-francisco",
"title":"美国加利福尼亚州旧金山天气 - timeanddate.com"
},
{
"link":"https://www.accuweather.com/en/us/san-francisco/94103/weather-today/347629",
"title":"旧金山, CA 今日天气 | AccuWeather"
},
{
"link":"https://www.accuweather.com/en/us/san-francisco/94103/weather-forecast/347629",
"title":"旧金山, CA 天气预报 | AccuWeather"
},
{
"link":"https://forecast.weather.gov/zipcity.php?inputstring=San%20francisco%2CCA",
"title":"国家气象局"
},
{
"link":"https://www.wunderground.com/weather/us/ca/san-francisco",
"title":"旧金山, CA 天气情况 | Weather Underground"
}
]
}
跟进对话:
meta = MetaAI()
print(meta.prompt("2加2等于多少?"))
print(meta.prompt("我上一个问题是什么?"))
{'message': '2 + 2 = 4\n', 'sources': [], 'media': []}
{'message': '您上一个问题是"2加2等于多少?"\n', 'sources': [], 'media': []}
要开始新对话:
meta = MetaAI()
print(meta.prompt("2加2等于多少?"))
print(meta.prompt("我上一个问题是什么?", new_conversation=True))
{'message': '2 + 2 = 4\n', 'sources': [], 'media': []}
{'message': "这是我们对话的开始,所以我没有可以参考的上一个问题。不过我很乐意与您聊天!今天您想聊些什么呢?\n", 'sources': [], 'media': []}
from meta_ai_api import MetaAI
ai = MetaAI()
response = ai.prompt(message="勇士队上一场比赛的得分是多少?")
print(response)
{
"message":"金州勇士队的上一场比赛是对阵萨克拉门托国王队,他们以118-94的比分输掉了比赛¹²。斯蒂芬·库里得到了22分,而国王队的这场胜利将勇士队淘汰出了季后赛³。勇士队以46胜36负的战绩结束了赛季,在西部联盟排名第10位⁴³。\n",
"sources":[
{
"link":"https://sportradar.com/",
"title":"来自sportradar.com的NBA比赛信息"
},
{
"link":"https://www.sofascore.com/team/basketball/golden-state-warriors/3428",
"title":"金州勇士队实时比分和赛程 - Sofascore"
},
{
"link":"https://www.foxsports.com/nba/golden-state-warriors-team-schedule",
"title":"金州勇士队赛程和比分 - NBA - FOX Sports"
},
{
"link":"https://en.wikipedia.org/wiki/History_of_the_Golden_State_Warriors",
"title":"金州勇士队历史"
}
]
}
使用代理:
from meta_ai_api import MetaAI
proxy = {
'http': 'http://proxy_address:port',
'https': 'https://proxy_address:port'
}
ai = MetaAI(proxy=proxy)
response = ai.prompt(message="如何判断哪些蘑菇可以食用?")
print(response)
流式响应:
from meta_ai_api import MetaAI
ai = MetaAI()
response = ai.prompt(message="勇士队上一场比赛的得分是多少?", stream=True)
for r in response:
print(r)
{'message': '\n', 'sources': []}
{'message': '金州\n', 'sources': []}
{'message': '金州勇士队\n', 'sources': []}
{'message': '金州勇士队的\n', 'sources': []}
{'message': '金州勇士队的上一场\n', 'sources': []}
{'message': '金州勇士队的上一场比赛\n', 'sources': []}
{'message': '金州勇士队的上一场比赛是\n', 'sources': []}
{'message': '金州勇士队的上一场比赛是对阵\n', 'sources': []}
{'message': '金州勇士队的上一场比赛是对阵萨克拉门托\n', 'sources': []}
{'message': '金州勇士队的上一场比赛是对阵萨克拉门托国王队\n', 'sources': []}
{'message': '金州勇士队的上一场比赛是对阵萨克拉门托国王队,\n', 'sources': []}
{'message': '金州勇士队的上一场比赛是对阵萨克拉门托国王队,比赛\n', 'sources': []}
...
{'message': '金州勇士队的上一场比赛是对阵萨克拉门托国王队,比赛于2024年4月16日在加利福尼亚州萨克拉门托的金1中心举行。国王队以118-94的比分赢得了比赛,勇士队在第一节得到22分,第二节28分,第三节26分,第四节18分¹。\n', 'sources': [{'link': 'https://sportradar.com/', 'title': '来自sportradar.com的NBA比赛信息'}]}
生成图像:
默认情况下,图像生成功能仅适用于通过FB认证的用户。如果您访问 https://www.meta.ai/ 并要求AI生成图像,系统会提示您使用Facebook账号进行认证。 因此,如果您想使用此库生成图像,需要使用您的FB凭据进行认证。
注意:认证用户似乎有更高的速率限制。所以只有在需要生成图像时才进行认证。
from meta_ai_api import MetaAI
ai = MetaAI(fb_email="您的FB邮箱", fb_password="您的FB密码")
resp = ai.prompt(message="生成一个科技公司CEO的图像")
print(resp)
{
"message":"\n",
"sources":[
],
"media":[
{
"url":"https://scontent-lax3-1.xx.fbcdn.net/o1/v/t0/f1/m247/4282108942387920518_1946149595_21-04-2024-14-17-48.jpeg?_nc_ht=scontent-lax3-1.xx.fbcdn.net&_nc_cat=103&ccb=9-4&oh=00_AfCnbCX7nl_J5kF6mahnams4d99Rs5WZA780HGS_scfc6A&oe=662771EE&_nc_sid=5b3566",
"type":"IMAGE",
"prompt":"一位科技公司CEO"
},
{
"url":"https://scontent-lax3-1.xx.fbcdn.net/o1/v/t0/f1/m247/3356467762794691754_1025991308_21-04-2024-14-17-48.jpeg?_nc_ht=scontent-lax3-1.xx.fbcdn.net&_nc_cat=108&ccb=9-4&oh=00_AfBLmSbTSqshNAL82KIFk8hGXyL8iK_CZLGcMmmddPrxuA&oe=66276EDD&_nc_sid=5b3566",
"type":"IMAGE",
"prompt":"一位科技公司CEO"
},
{
"url":"https://scontent-lax3-1.xx.fbcdn.net/o1/v/t0/f1/m247/127487551948523111_2181921077_21-04-2024-14-17-48.jpeg?_nc_ht=scontent-lax3-1.xx.fbcdn.net&_nc_cat=104&ccb=9-4&oh=00_AfAejXKeKPA4vyKXoc6UR0rEirvZwi41P3KiCSQmHRHsEw&oe=66276E45&_nc_sid=5b3566",
"type":"IMAGE",
"prompt":"一位科技公司CEO"
},
{
"url":"https://scontent-lax3-1.xx.fbcdn.net/o1/v/t0/f1/m247/3497663176351797954_3954783377_21-04-2024-14-17-47.jpeg?_nc_ht=scontent-lax3-1.xx.fbcdn.net&_nc_cat=110&ccb=9-4&oh=00_AfBp3bAfcuofqtI-z9D4bHw-GuGgCNPH_xhMM0PG_95S9Q&oe=66277AE9&_nc_sid=5b3566",
"type":"IMAGE",
"prompt":"一位科技公司CEO"
}
]
}
教育目的:
本仓库仅供教育目的使用。它是一个展示如何与Meta的AI API交互的工具,为学习和实验提供了一个示例。用户应遵守Meta的服务条款并负责任地使用该库。
版权:
本程序根据GNU GPL v3许可证授权。所有代码均由我,Strvm编写。
版权声明:
Strvm/meta-ai-api:MetaAI的逆向工程API包装器
版权所有 (C) 2023 Strvm
本程序是自由软件:您可以根据自由软件基金会发布的GNU通用公共许可证的条款,即许可证的第3版或(您选择的)任何后来的版本重新发布它和/或修改它。
本程序的发布是希望它能起到作用,但没有任何保证;甚至没有隐含的适销性或特定用途的适用性保证。更多细节请参见GNU通用公共许可证。
您应该已经收到了一份GNU通用公共许可证的副本。如果没有,请参阅<https://www.gnu.org/licenses/>。