Créé le: 2024-09-07 ; Révisé le: 2024-09-07
Cette semaine, j’ai ajouté une fonctionnalité dans mon application d’étude https://foilen.com/fr/logiciels/ : une intégration avec LocalAI en utilisant SpringAI qui va générer des phrases avec le mot de vocabulaire automatiquement. Il arrive à créer des phrases pour environ 90% des mots (dans les autres 10% c’est que des fois il conjugue le verbe au lieu de l’utiliser tel quel ou va écrire “mère” au lieu de “parent”)
Ça va faciliter l’ajout de mots.
Vous pouvez voir le commit complet dans Git sur https://github.com/foilen/foilen-studies/commit/d8c3abced5f41fc29c6298173f9fd5083c98da17 .
Lorsque nous sauvegardons une liste de mots, les mots sans phrases entrées par l’utilisateur sont ajoutés à une file.
En utilisant l’invite suivant:
Écris de courtes phrases avec un mot ci-dessous par phrase écrit avec la même orthographe exactement:
- mot1
- mot2
- mot3
En faisant un git reset --soft {hash}
pour revenir à l’état avant l’ajout de la fonctionnalité, mais en gardant les
modifications dans l’index de Git.
Ajouter le Maven pour Spring:
repositories {
maven { url 'https://repo.spring.io/milestone' }
}
Ajouter la version (voir la plus récente sur https://repo.spring.io/ui/native/milestone/org/springframework/ai/spring-ai-openai-spring-boot-starter/ ):
ext {
springAiVersion = "1.0.0-M2"
}
Ajouter la dépendance:
dependencies {
implementation 'org.springframework.ai:spring-ai-openai-spring-boot-starter'
}
Ajouter le BOM (explication de ce que c’est à 11:24):
dependencyManagement {
imports {
mavenBom "org.springframework.ai:spring-ai-bom:$springAiVersion"
}
}
spring.ai.openai.base-url: https://localai.myhost.com
spring.ai.openai.api-key: xxxxxxxxxxx
spring.ai.openai.chat.options.model: gpt-4
gpt-4o
qui est le plus récent d’OpenAIgpt-4
@Configuration
public class AiSpringConfig {
@Bean
public ChatClient chatClient(ChatClient.Builder builder) {
return builder.build();
}
}
ChatClient
(16:10)système
vs utilisateur
(16:17)call()
(19:56)public static final String SENTENCE_SYSTEM_PROMPT = """
- As an elementary school teacher, create a dictation sentence that includes the following word, written as is with the same gender number. When it is a verb, keep it in the infinitive form or in the conjugation form to stay the same.
- The sentence must be in {LANG}.
- Only output the sentence.
""";
@Autowired
private ChatClient chatClient;
@Override
public String generateSentence(Locale locale, String word) {
logger.info("Generating sentence for word: {} in locale: {}", word, locale.getDisplayLanguage());
String sentence = chatClient.prompt()
.system(SENTENCE_SYSTEM_PROMPT.replace("{LANG}", locale.getDisplayLanguage()))
.user(word)
.call()
.content();
return sentence;
}
Puis c’est tout pour l’utilisation de LocalAI avec SpringAI.
La suite de la vidéo est à propos de comment j’ai intégré cette fonctionnalité dans mon application d’étude:
J’aimerais faire un script qui traite mes articles sur mon site et:
Ainsi, je pourrais le laisser tourner pendant la nuit et avoir des images pour mes articles.