From 18ea97fcc60dbdc6de01aff374307735d424a050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Fri, 18 Aug 2023 11:12:35 +0800 Subject: [PATCH] feat: update ai-plugin.json --- .well-known/MetaGPT-logo.png | Bin 50622 -> 0 bytes .well-known/ai-plugin.json | 14 +++---- metagpt/tools/openai_text_2_embedding.py | 47 +++++++++++++++++++++++ 3 files changed, 54 insertions(+), 7 deletions(-) delete mode 100644 .well-known/MetaGPT-logo.png create mode 100644 metagpt/tools/openai_text_2_embedding.py diff --git a/.well-known/MetaGPT-logo.png b/.well-known/MetaGPT-logo.png deleted file mode 100644 index 159517fcd4f62049f43eec4db62e1770d189ae89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50622 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

UfihaCQirj4A9t(VyJ?^5ek z4ZHN@8L}%#vYujuh8w7Z)!H?E-H0tAx&@l?KU*v}MoVK${0ZgI8*l#Z8k)t%nvlPj zFt#*tcL!mw`xw8(c}ovx!BhD*^SOPx)={xPmOn=gTEk!E0qv`@>Q?GIW4;x7^6iJ9 zXl~ZcGxLV8b2A>jAx*6x)9&yUGy=*1CvIOL4}bJ$`z)8N5gdQ4tmukXo4#u7CeSl} zj4HEF3xP^Fvl6tsgUp{=y!^R?0*v+Ui4%;7IV=qirAV1BvCv?u>vg56G>QLy7J!t< zf~~%qD))NlDrp#LhJ*-KI<|$36UPtz@jskbdL2hNT+v1DAeSB)sA?<$$t0di$fbuB zvCwG>d62O?5o5&UX%>^9js{%0fO%j7)!h@)a*YcuZ9ztGY5$lVA-59zkKTWQB{#Xk zS9tcZsl%qBo0!+|Y|2`Pr(AQg8T1VLfL*qi4o%6s~K)I79= z>KyYmPY>71F_5+>EbaX$-QFQsxP$%6eiF_&I^61wwK$?d{h&EK?5-Q*1AIqoiFCitB0nI#V#VzjtzF}mvg+eD~`jM8A@XrKms_g z6Sdyq3#$a?F3ff^LtDpCJ#_rjiP;@bdsia%_(_Qy&f8I1EA_Gbv1!Z;0!d?8s<_pk zVc42rU?Ee0h1{yWD|d!lecQhB^j{!oV;H_XJywME@#}A`bR_r5s)>}l4~C4NbW|#< z9Z=DGOy&0KaNp-7pr|3~A#<@`m={preV`>QAK0OU5Ws(P|1Qp$(_@4Irx(MI^z1|H zs;a#Ac;+7yGW&~+%oDD5L_LqB7lB`Z-RsAVV2=GnmaOTGyRbo8e+W19@%oZf2hmYM zz$k%v!T97HQog~2x(^*y$2W4`%6-bznU!P=*06sxB=5XZfSmWjxAuH@*e*cQVU2ds zBJUUoHa{?zn^7U7JFY<(Un%rvkRjwvXY=r|5hwgZTnJ0RP8+Rd@V0ym zi5RI{`fT6E1lRltHwoBWN0h#fQ>`34{NqRJTr2z97ll8iS=w?Wa;;kgb~JM%WNv#d zW$AFCO!jb$eSW-gO?78wBb*-bvv`f=99cJsZ3{IxgFNUwX$SECb-ceRsg@ObD!G0% z<}7x|HW-Te_R$1V+Bd6uIt^rMi!Lxj;$wgC7O z?`lZ;4#0Tr|HhjrOkl=?Odp5S>&DbX<4d^>P{(ZH!AWCb+M9TFxYY0^(a4>^wZ610 zIaTax#8S)|T3`6J=t-o1V<&sg@qik#%r|mHMTGumBQ8ML zRN-!TH_=g-b`)Cw)P_!x8R%fI&FA*W6aiId>r3G5#;SKE_mO3fYc$~uBMx!@>O0+# zRvFK1HPp2x>)?0VjE)O)t>TvNZxFQ%>!gYjfKf{*XYL|SPbcf8?(Rgyl|xWumR(`h z8_&$Z#>L|Tf4QMMr-uo0q*cVh5+L``>e@bbQ=_+&`Av7~jrjEM8>Ht+J-0Rxfm+TcR6w#L@ zzig~9y%7Jc!N4XBFLM4;1jvC;tH+ z*78+%*U8zL5xIg-IJ9uF5fD=!0<3>dq-ENa9gQpa4?tiY`Zic$!W-nKbIy{A?Os5U z<*9rBtSA4qmRT&hM}aJ?qaozDWIvZ?w%Aty@5sl;2euOeK8t{IH^6fU5QG9>N&tE@ zKEC_>`=kNBM8*Hu8TqUM*O`y+>yiIAui_4f)@S{qKeO-+B3;x%i*8{NH8q hzq|7P+g0Gn?I{RpTIF)D04@ig@m-5M<+oj;{txg)_F@14 diff --git a/.well-known/ai-plugin.json b/.well-known/ai-plugin.json index bc08de0d4..44e8435f2 100644 --- a/.well-known/ai-plugin.json +++ b/.well-known/ai-plugin.json @@ -2,17 +2,17 @@ "schema_version": "v1", "name_for_model": "text processing tools", "name_for_human": "MetaGPT Text Plugin", - "description_for_model": "Plugins for text processing, including text-to-speech, text-to-image, text-to-vector, text summarization, text-to-code, vector similarity calculation, web content crawling, and more.", - "description_for_human": "Plugins for text processing, including text-to-speech, text-to-image, text-to-vector, text summarization, text-to-code, vector similarity calculation, web content crawling, and more.", + "description_for_model": "Plugins for text processing, including text-to-speech, text-to-image, text-to-embedding, text summarization, text-to-code, vector similarity calculation, web content crawling, and more.", + "description_for_human": "Plugins for text processing, including text-to-speech, text-to-image, text-to-embedding, text summarization, text-to-code, vector similarity calculation, web content crawling, and more.", "auth": { - "type": "none", + "type": "none" }, "api": { "type": "openapi", - "url": "https://localhost:8080/.well-known/openapi.yaml", + "url": "https://github.com/iorisa/MetaGPT/blob/feature/oas3/.well-known/metagpt_oas3_api.yaml", "has_user_authentication": false }, - "logo_url": "https://localhost:8080/.well-known/MetaGPT-logo.png", - "contact_email": "hello@contact.com", - "legal_info_url": "http://localhost:8080/legal-info" + "logo_url": "https://github.com/iorisa/MetaGPT/blob/feature/oas3/docs/resources/MetaGPT-logo.png", + "contact_email": "mashenquan@fuzhi.cn", + "legal_info_url": "https://github.com/iorisa/MetaGPT/blob/feature/oas3/docs/README_CN.md" } \ No newline at end of file diff --git a/metagpt/tools/openai_text_2_embedding.py b/metagpt/tools/openai_text_2_embedding.py new file mode 100644 index 000000000..822c5af00 --- /dev/null +++ b/metagpt/tools/openai_text_2_embedding.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2023/8/17 +@Author : mashenquan +@File : openai_text_2_vector.py +@Desc : OpenAI Text-to-Vector OAS3 api, which provides text-to-vector functionality. +""" +import os + +class OpenAIText2Vector: + def __init__(self, openai_api_key): + """ + :param openai_api_key: OpenAI API key, For more details, checkout: `https://platform.openai.com/account/api-keys` + """ + self.openai_api_key = openai_api_key if openai_api_key else os.environ.get('OPENAI_API_KEY') + + def text_2_vector(self, text, size_type="1024x1024"): + """Text to image + + :param text: The text used for image conversion. + :param size_type: One of ['256x256', '512x512', '1024x1024'] + :return: The image data is returned in Base64 encoding. + """ + + class ImageUrl(BaseModel): + url: str + + class ImageResult(BaseModel): + data: List[ImageUrl] + created: int + + headers = { + "Content-Type": "application/json", + "Authorization": f"Bearer {self.openai_api_key}" + } + data = {"prompt": text, "n": 1, "size": size_type} + try: + response = requests.post("https://api.openai.com/v1/images/generations", headers=headers, json=data) + response.raise_for_status() # Raise an exception for 4xx or 5xx responses + result = ImageResult(**response.json()) + except requests.exceptions.RequestException as e: + logger.error(f"An error occurred:{e}") + return "" + if len(result.data) > 0: + return OpenAIText2Image.get_image_data(result.data[0].url) + return "" \ No newline at end of file