Ragcar? Basiert auf der natürlichen Sprachverarbeitungsbibliothek der Kakaiove Lane Pororo Architecture und fügt ein großes Sprachmodell (LLM) OpenAI GPT und die Hyperclova X -API -Funktion von Naver hinzu. Es unterstützt die Werkzeuge, die für RAG (RAG) benötigt werden.
python>=3.8 Es funktioniert normalerweise in einer Umgebung.
Sie können das Paket über den folgenden Befehl installieren.
pip install ragcar git clone https://github.com/leewaay/ragcar.git
cd ragcar
pip install -e . Sie können Ragcar mit dem folgenden Befehl verwenden:
Ragcar zu importieren, müssen Sie zunächst den folgenden Befehl ausführen: > >> from ragcar import RagcarRagcar unterstützten Aufgaben über den folgenden Befehl überprüfen. > >> from ragcar import Ragcar
> >> Ragcar . available_tools ()
"Available tools are ['tokenization', 'sentence_embedding', 'sentence_similarity', 'semantic_search', 'text_generation', 'text_segmentation']" > >> Ragcar . available_models ( "text_generation" )
'Available models for text_generation are ([src]: openai, [model]: gpt-4-turbo-preview, gpt-4, gpt-3.5-turbo, MODELS_SUPPORTED(https://platform.openai.com/docs/models)), ([src]: clova, [model]: YOUR_MODEL(https://www.ncloud.com/product/aiService/clovaStudio))'src -Argument einfügen, das Sie vor tool Werkzeugfaktor suchen. > >> from ragcar . utils import PromptTemplate
> >> prompt_template = PromptTemplate ( "사용자: {input} 수도는? n AI:" )
> >> generator = Ragcar ( tool = "text_generation" , src = "openai" , prompt_template = prompt_template , formatting = True ) > >> generator ( input = "대한민국" )
{
'id' : 'openai-dad4969f-6f0d-4413-a748-26d05cc0e73d' ,
'model' : 'gpt-4-turbo-preview' ,
'content' : '대한민국의 수도는 서울입니다.' ,
'finish_reason' : 'stop' ,
'input_tokens' : 23 ,
'output_tokens' : 15 ,
'total_tokens' : 38 ,
'predicted_cost' : 0.0015899999999999998 ,
'response_time' : 1.0608701705932617
} Bestimmte src erfordert Umgebungsvariablen (z. B. API -Schlüssel ), die Sicherheit und Wartung erfordert und als eine der folgenden drei Methoden festgelegt werden kann:
.env -Datei: Erstellen Sie eine .env -Datei in der Top -Route des Projekts und geben Sie die erforderlichen Umgebungsvariablenwerte ein. export OPENAI_API_KEY= ' sk-... 'model : Geben Sie die erforderliche Umgebungsvariable direkt in den Modellfaktorwert ein. ( Wenden Sie dasselbe, auch wenn Sie es zusätzlich zum model hinzufügen müssen .) > >> Ragcar . available_customizable_src ( "text_generation" )
"Available customizable src for text_generation are ['clova', 'openai']"
> >> Ragcar . available_model_fields ( "clova" )
'Available fields for clova are ([field]: model_n, [type]: str), ([field]: api_key, [type]: str), ([field]: app_key, [type]: str)' > >> generator = Ragcar (
tool = "text_generation" ,
src = "clova" ,
model = {
"model_n" : "YOUR_API_URL" ,
"api_key" : "YOUR_APIGW-API-KEY" ,
"app_key" : "YOUR_CLOVASTUDIO-API-KEY"
},
prompt_template = prompt_template ,
formatting = True
)
> >> generator ( input = "대한민국" )
{
'id' : 'clova-3c241fa1-f01e-4738-b208-5bcb35daad42' ,
'model' : 'HCX-003' ,
'content' : '대한민국 수도는 서울입니다.' ,
'finish_reason' : 'stop_before' ,
'input_tokens' : 12 ,
'output_tokens' : 8 ,
'total_tokens' : 20 ,
'predicted_cost' : 0.6 ,
'response_time' : 0.7090704441070557 ,
'ai_filter' : []
}Tool predicted_cost predicted_cost wird je nach API, die bei der Verwendung des Tools text_generation verwendet wird, unterschiedlich berechnet. Für OpenAI wird predicted_cost vom Dollar (USD) berechnet und Clova als Original (KRW) berechnet. Dies liegt daran, dass das Abrechnungssystem jedes Dienstes unterschiedlich ist. Spezifische Ladeinformationen gemäß dem aktuellen Modell finden Sie in der Basis.py -Datei.
Achten Sie bei der Verwendung von Text_generation tool mit Clova src auf die Änderungen, die im Vergleich zu einem offiziellen Parameter geändert wurden:
Parametername Änderung :
presence_penalty anstelle von top_k .frequency_penalty anstelle von repeat_penalty .Parameterwertbereich :
0.0 < temperature < 1.00.0 < top_p < 1.00 < presence_penalty < 1280.0 < frequency_penalty < 10.0Beispiel für Satz_embedding
Wenn Sie Fragen oder Meinungen haben, hinterlassen Sie bitte ein Problem.
@misc { pororo ,
author = { Heo, Hoon and Ko, Hyunwoong and Kim, Soohwan and
Han, Gunsoo and Park, Jiwoo and Park, Kyubyong } ,
title = { PORORO: Platform Of neuRal mOdels for natuRal language prOcessing } ,
howpublished = { url{https://github.com/kakaobrain/pororo} } ,
year = { 2021 } ,
} @inproceedings { reimers-2019-sentence-bert ,
title = " Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks " ,
author = " Reimers, Nils and Gurevych, Iryna " ,
booktitle = " Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing " ,
month = " 11 " ,
year = " 2019 " ,
publisher = " Association for Computational Linguistics " ,
url = " https://arxiv.org/abs/1908.10084 " ,
}