고속 스트리밍 출력, 여러 라운드의 대화, 음성 합성, 음성 인식, 인터넷 검색, 긴 문서 해석, 이미지 분석, 제로 구성 배포, 다중 채널 토큰 지원 및 세션 추적 자동 정리를 지원합니다.
ChatGPT 인터페이스와 완벽하게 호환됩니다.
또한 주목해야 할 다음과 같은 8가지 무료 API도 있습니다.
API kimi-free-api에 대한 Moonshot AI(Kimi.ai) 인터페이스
API glm-free-api에 대한 ZhipuAI(Zhipu Qingyan) 인터페이스
API step-free-api에 대한 StepChat 인터페이스
API에 대한 Alibaba Tongyi(Qwen) 인터페이스 qwen-free-api
API Metaso-free-api에 대한 Metaso AI(Metaso) 인터페이스
API Spark-Free-API에 대한 iFlytek Spark 인터페이스
API deepseek-free-api에 대한 DeepSeek 인터페이스
API emohaa-free-api에 대한 Listening Intelligence(Emohaa) 인터페이스
리버스 API는 불안정합니다. 금지될 위험을 피하기 위해 API 사용 비용을 지불하려면 공식 MiniMax https://www.minimaxi.com/platform으로 이동하는 것이 좋습니다.
본 기관 및 개인은 어떠한 금전적 기부나 거래도 받지 않습니다. 본 프로젝트는 순전히 연구, 교류, 학습을 위한 것입니다!
개인적인 용도로만 사용할 수 있으며 공식 서비스에 압력을 가하지 않기 위해 외부 서비스나 상업적 용도를 제공하는 것은 금지되어 있습니다. 그렇지 않은 경우 위험은 사용자 본인에게 있습니다!
개인적인 용도로만 사용할 수 있으며 공식 서비스에 압력을 가하지 않기 위해 외부 서비스나 상업적 용도를 제공하는 것은 금지되어 있습니다. 그렇지 않은 경우 위험은 사용자 본인에게 있습니다!
개인적인 용도로만 사용할 수 있으며 공식 서비스에 압력을 가하지 않기 위해 외부 서비스나 상업적 용도를 제공하는 것은 금지되어 있습니다. 그렇지 않은 경우 위험은 사용자 본인에게 있습니다!
이 링크는 동시성이 하나만 있는 임시 테스트 기능입니다. 예외가 발생하면 나중에 직접 배포하는 것이 좋습니다.
https://udify.app/chat/uqBly3aW1LTwzzb3
음성 합성은 음성을 생성합니다
음성 인식은 스크립트 작성에 관한 것입니다.
Conch AI에서 토큰 받기
Conch AI를 입력하여 대화를 시작한 다음 F12를 사용하여 개발자 도구를 열고 Application > LocalStorage에서 _token
값을 찾으세요. 이는 Authorization: Authorization: Bearer TOKEN
의 Bearer Token 값으로 사용됩니다.
현재 동일한 계정은 동시에 하나의 출력만 가질 수 있는 것으로 보입니다. 여러 계정의 _tokens를 제공하고 이를 사용할 수 ,
스플라이싱은 다음을 제공합니다.
Authorization: Bearer TOKEN1,TOKEN2,TOKEN3
서비스를 요청할 때마다 이 중 하나가 선택됩니다.
공인 IP로 서버를 준비하시고 포트 8000을 열어주세요.
이미지를 가져와 서비스 시작
docker run -it -d --init --name hailuo-free-api -p 8000:8000 -e TZ=Asia/Shanghai vinlic/hailuo-free-api:latest
실시간 서비스 로그 보기
docker logs -f hailuo-free-api
서비스 다시 시작
docker restart hailuo-free-api
서비스 중지
docker stop hailuo-free-api
version : ' 3 '
services :
hailuo-free-api :
container_name : hailuo-free-api
image : vinlic/hailuo-free-api:latest
restart : always
ports :
- " 8000:8000 "
environment :
- TZ=Asia/Shanghai
참고: 일부 배포 영역에서는 Hailuo에 연결하지 못할 수 있습니다. 컨테이너 로그에 요청 시간 초과가 표시되거나 연결할 수 없는 경우 배포를 위해 다른 영역으로 전환하세요! 참고: 무료 계정의 컨테이너 인스턴스는 일정 기간 동안 활동이 없으면 자동으로 실행이 중지되므로 다음 요청 시 50초 이상의 지연이 발생합니다. 렌더링 컨테이너 유지를 확인하는 것이 좋습니다.
이 프로젝트를 github 계정으로 포크하세요.
Render를 방문하여 github 계정에 로그인하세요.
웹 서비스를 구축합니다(새로 만들기+ -> Git 저장소에서 구축 및 배포 -> 포크된 프로젝트 연결 -> 배포 영역 선택 -> 인스턴스 유형을 무료로 선택 -> 웹 서비스 생성).
구축이 완료될 때까지 기다린 후 할당된 도메인 이름을 복사하고 접속할 URL을 접속하세요.
참고: Vercel 무료 계정의 요청 응답 시간 초과는 10초이지만 인터페이스 응답은 일반적으로 더 오래 걸리며 Vercel에서 반환한 504 시간 초과 오류가 발생할 수 있습니다!
먼저 Node.js 환경을 설치했는지 확인하세요.
npm i -g vercel --registry http://registry.npmmirror.com
vercel login
git clone https://github.com/LLM-Red-Team/hailuo-free-api
cd hailuo-free-api
vercel --prod
공인 IP로 서버를 준비하시고 포트 8000을 열어주세요.
Node.js 환경을 설치하고 환경 변수를 먼저 구성한 후 node 명령이 사용 가능한지 확인하세요.
종속성 설치
npm i
공정 보호를 위해 PM2 설치
npm i -g pm2
컴파일하고 빌드하면 dist 디렉토리가 보이면 빌드가 완료된 것입니다.
npm run build
서비스 시작
pm2 start dist/index.js --name " hailuo-free-api "
실시간 서비스 로그 보기
pm2 logs hailuo-free-api
서비스 다시 시작
pm2 reload hailuo-free-api
서비스 중지
pm2 stop hailuo-free-api
무료 API 시리즈 프로젝트에 접근하려면 다음 보조 개발 클라이언트를 사용하는 것이 더 빠르고 쉬우며 문서/이미지 업로드를 지원합니다!
Clivia https://github.com/Yanyutin753/lobe-chat에서 개발한 LobeChat
Guangguang@이 개발한 ChatGPT 웹 https://github.com/SuYxh/chatgpt-web-sea
현재 openai와 호환되는 /v1/chat/completions
인터페이스가 지원됩니다. openai 또는 다른 클라이언트와 호환되는 클라이언트 액세스 인터페이스를 사용하거나 dify와 같은 온라인 서비스를 사용하여 액세스할 수 있습니다.
openai의 chat-completions-api와 호환되는 대화 완료 인터페이스입니다.
POST /v1/chat/completions
헤더는 Authorization 헤더를 설정해야 합니다.
Authorization: Bearer [_token]
데이터 요청:
{
// model模型名称可以乱填
"model" : " hailuo " ,
"messages" : [
{
"role" : " user " ,
"content" : "你是谁? "
}
],
// 如果使用SSE流请设置为true,默认false
"stream" : false
}
응답 데이터:
{
"id" : " 242830597915504644 " ,
"model" : " hailuo " ,
"object" : " chat.completion " ,
"choices" : [
{
"index" : 0 ,
"message" : {
"role" : " assistant " ,
"content" : "我是海螺AI,由上海稀宇科技有限公司(MiniMax)自主研发的AI助理。我可以帮助你回答各种问题,提供信息查询、生活建议、学习辅导等服务。如果你有任何问题,随时可以向我提问。 "
},
"finish_reason" : " stop "
}
],
"usage" : {
"prompt_tokens" : 1 ,
"completion_tokens" : 1 ,
"total_tokens" : 2
},
"created" : 1714751470
}
openai의 audio-create-speech-api와 호환되는 음성 인터페이스를 만들고 mp3 형식 출력만 지원합니다.
male-botong 思远 [兼容 tts-1 alloy]
Podcast_girl 心悦 [兼容 tts-1 echo]
boyan_new_hailuo 子轩 [兼容 tts-1 fable]
female-shaonv 灵儿 [兼容 tts-1 onyx]
YaeMiko_hailuo 语嫣 [兼容 tts-1 nova]
xiaoyi_mix_hailuo 少泽 [兼容 tts-1 shimmer]
xiaomo_sft 芷溪 [兼容 tts-1-hd alloy]
cove_test2_hailuo 浩翔(英文)
scarlett_hailuo 雅涵(英文)
Leishen2_hailuo 模仿雷电将军 [兼容 tts-1-hd echo]
Zhongli_hailuo 模仿钟离 [兼容 tts-1-hd fable]
Paimeng_hailuo 模仿派蒙 [兼容 tts-1-hd onyx]
keli_hailuo 模仿可莉 [兼容 tts-1-hd nova]
Hutao_hailuo 模仿胡桃 [兼容 tts-1-hd shimmer]
Xionger_hailuo 模仿熊二
Haimian_hailuo 模仿海绵宝宝
Robot_hunter_hailuo 模仿变形金刚
Linzhiling_hailuo 小玲玲
huafei_hailuo 拽妃
lingfeng_hailuo 东北er
male_dongbei_hailuo 老铁
Beijing_hailuo 北京er
JayChou_hailuo JayJay
Daniel_hailuo 潇然
Bingjiao_zongcai_hailuo 沉韵
female-yaoyao-hd 瑶瑶
murong_sft 晨曦
shangshen_sft 沐珊
kongchen_sft 祁辰
shenteng2_hailuo 夏洛特
Guodegang_hailuo 郭嘚嘚
yueyue_hailuo 小月月
puv_******************
형식으로 F12 네트워크에서 robots_custom_config 요청 응답 data.formInfo.userVoiceList의 자체 복제 음성 ID를 찾습니다.
docker 시작 시 REPLACE_AUDIO_MODEL
환경 변수를 구성하거나 시스템에서 사용자 정의 스피커를 openai의 스피커 모델에 매핑하도록 구성하세요. 각 스피커를 구분 ,
쉼표를 사용하세요.
매핑 순서는 Alloy, Echo, Fable, Onyx, Nova, Shimmer입니다. 현재 6개의 매핑을 정의할 수 있습니다.
매핑 예:
Podcast_girl -> 합금
yueyue_hailuo -> 에코
keli_hailuo -> 우화
위의 매핑 관계에 대한 환경 구성은 다음과 같습니다.
REPLACE_AUDIO_MODEL="Podcast_girl,yueyue_hailuo,keli_hailuo";
POST /v1/오디오/음성
헤더는 Authorization 헤더를 설정해야 합니다.
Authorization: Bearer [_token]
데이터 요청:
{
// model模型名称可以乱填
"model" : " hailuo " ,
// 语音内容,尽量不要包含指令(否则可能导致模型回答你的问题)
"input" : "你在做什么? " ,
// 发音人ID,可以使用官方或者自己克隆的音色
"voice" : " Podcast_girl "
}
응답 데이터:
오디오/mpeg 바이너리 데이터 스트림(mp3 파일)
openai의 audio-create-transcription-api와 호환되는 전사 인터페이스를 만듭니다.
POST /v1/오디오/녹음
헤더는 Authorization 헤더를 설정해야 합니다.
Authorization: Bearer [_token]
요청 데이터(다중 부분/양식 데이터):
file 要转录的音频文件对象(不是文件名),格式为:wav、mp3、mpeg、mpga、m4a、ogg、flac。
model 模型名称,可以乱填
response_format 仅支持json或text
응답 데이터:
{
"text": "嗯,多年前呢我是个穷小子,我有一个喜欢的女孩,他有一双会说话的眼睛,他偏爱雏菊般的淡黄色。我我每天都骑自行车送他上下学专挑那个坑坑洼洼的路走。然后编的时候,我就能感觉到他用双手在后边用力的拽我的衣服,我好开心哪。然后回家以后,我才发现我唯一的一件衬衣变成了燕尾服。我每天中午会把我妈妈给我带的荷包蛋,我给她吃,他只吃蛋白,他把蛋蛋黄留给我,我我真的我好感动啊。呃,到后来我我知道呃,吃蛋黄反腹唇口,呃,我们同窗三年,我给他写了一百多封信,跟你联系我我我我我我每一封信我都换一个笔记,我怕他认出来,我那我很不好意思。所以说长此以往的练习,我在书法大赛获得了一等奖。直到有一天,他准备坐火车去省城上学的时候,我也没有把我自己的话跟他说出来。哎,我去那天也是像今天一样下着雨,他也带着那条漂亮的黄丝巾,我递给他一篮子鸡蛋,他没接,他反问我说有多少个鸡蛋,我说有一百个,他说他一天吃一个,一百天就吃完了再想吃,还有吗?这个其实我知道他懂我那句话,可是我当时就像被雷击中了一样无果果主人我什么话我都说不出来。当我缓过神儿来的时候,他已经上车了,车已经开了,车已经开出一段距离了。那个时候我只要大声的喊,他一定能够听到我张嘴了,没声儿。从那一刻起,我就生了病,预言是癌症,没当下雨或者是重要场合,我者无法说话。其实这么多年我一直想找一个机会,我希望他能够重新出现在我眼前。今天这个机会来了,此时此刻他就坐在离我三米半远的地方。我要把我二十年前要跟你说的话,大声的告诉你,哇,李丽,你你只要愿意跟我在一起鸡蛋,我给你带一辈子,有的是。"
}
구문 분석할 액세스 가능한 파일 URL 또는 BASE64_URL을 제공하세요.
POST /v1/chat/completions
헤더는 Authorization 헤더를 설정해야 합니다.
Authorization: Bearer [_token]
데이터 요청:
{
// model模型名称可以乱填
"model" : " hailuo " ,
"messages" : [
{
"role" : " user " ,
"content" : [
{
"type" : " file " ,
"file_url" : {
"url" : " https://mj101-1317487292.cos.ap-shanghai.myqcloud.com/ai/test.pdf "
}
},
{
"type" : " text " ,
"text" : "文档里说了什么? "
}
]
}
],
// 如果使用SSE流请设置为true,默认false
"stream" : false
}
응답 데이터:
{
"id" : " 242835041910616068 " ,
"model" : " hailuo " ,
"object" : " chat.completion " ,
"choices" : [
{
"index" : 0 ,
"message" : {
"role" : " assistant " ,
"content": "文档中包含了一系列的古代魔法仪式和咒语,这些内容似乎源自古希腊罗马时期的魔法文献,如《希腊魔法纸莎草纸》(PGM,全称为Papyri Graecae Magicae)。以下是每个文档内容的简要概述:nn1. 文档1中描述了一个仪式,其中包括将面包分成七小块,然后在那些被暴力杀害的地方留下这些面包块,并念诵一段咒语。这个仪式的目的是为了吸引一个特定女性的注意,让她对施法者产生强烈的感情和欲望。nn2. 文档2中包含了一个咒语,要求一个名为Didymos的施法者召唤一个名为Tereous的女性,通过念诵一系列的魔法名字和咒语,使她感到痛苦和渴望,直到她来到施法者身边。nn3. 文档3中提供了一个简单的仪式,施法者需要保持三天的纯洁,并献上乳香作为祭品,念诵一个特定的名字(NEPHERIRI),以此来吸引一个美丽的女性。nn4. 文档4中描述了一个使用没药的仪式,施法者在献上没药的同时念诵一段咒语,目的是让一个特定的女性对施法者产生强烈的爱慕之情,即使她正在做其他事情,也会被这种强烈的感情所占据。nn这些文档内容反映了古代人们对于魔法和咒语的信仰,以及他们试图通过这些仪式来影响他人情感和行为的愿望。需要注意的是,这些内容仅供学术研究和了解历史之用,现代社会中不应使用这些仪式或咒语来干预他人的自由意志。"
},
"finish_reason" : " stop "
}
],
"usage" : {
"prompt_tokens" : 1 ,
"completion_tokens" : 1 ,
"total_tokens" : 2
},
"created" : 1714752530
}
구문 분석할 액세스 가능한 이미지 URL 또는 BASE64_URL을 제공하세요.
이 형식은 gpt-4-vision-preview API 형식과 호환되며 이 형식을 사용하여 구문 분석을 위해 문서를 전송할 수도 있습니다.
POST /v1/chat/completions
헤더는 Authorization 헤더를 설정해야 합니다.
Authorization: Bearer [_token]
데이터 요청:
{
"model" : " hailuo " ,
"messages" : [
{
"role" : " user " ,
"content" : [
{
"type" : " image_url " ,
"image_url" : {
"url" : " https://ecmb.bdimg.com/tam-ogel/-1384175475_-1668929744_259_194.jpg "
}
},
{
"type" : " text " ,
"text" : "图里是什么? "
}
]
}
],
// 如果使用SSE流请设置为true,默认false
"stream" : false
}
응답 데이터:
{
"id" : " 242835404705341445 " ,
"model" : " hailuo " ,
"object" : " chat.completion " ,
"choices" : [
{
"index" : 0 ,
"message" : {
"role" : " assistant " ,
"content" : "图里是“海螺AI”的标识。 "
},
"finish_reason" : " stop "
}
],
"usage" : {
"prompt_tokens" : 1 ,
"completion_tokens" : 1 ,
"total_tokens" : 2
},
"created" : 1714752616
}
_token이 살아 있는지 확인하세요. live가 true가 아니면 false입니다. 이 인터페이스를 자주 호출하지 마세요(10분 미만).
POST /토큰/체크
데이터 요청:
{
"token" : " eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9... "
}
응답 데이터:
{
"live" : true
}
Nginx 역방향 프록시 hailuo-free-api를 사용하는 경우 스트림의 출력 효과를 최적화하고 경험을 최적화하려면 다음 구성 항목을 추가하세요.
# 关闭代理缓冲。当设置为off时,Nginx会立即将客户端请求发送到后端服务器,并立即将从后端服务器接收到的响应发送回客户端。
proxy_buffering off ;
# 启用分块传输编码。分块传输编码允许服务器为动态生成的内容分块发送数据,而不需要预先知道内容的大小。
chunked_transfer_encoding on ;
# 开启TCP_NOPUSH,这告诉Nginx在数据包发送到客户端之前,尽可能地发送数据。这通常在sendfile使用时配合使用,可以提高网络效率。
tcp_nopush on ;
# 开启TCP_NODELAY,这告诉Nginx不延迟发送数据,立即发送小数据包。在某些情况下,这可以减少网络的延迟。
tcp_nodelay on ;
# 设置保持连接的超时时间,这里设置为120秒。如果在这段时间内,客户端和服务器之间没有进一步的通信,连接将被关闭。
keepalive_timeout 120 ;
추론측이 hailuo-free-api에 없기 때문에 토큰을 계산할 수 없으며 고정된 숫자로 반환됩니다.