강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

gynam님의 프로필 이미지
gynam

작성한 질문수

나도! 스프링으로 인공지능을 할 수 있다(인프1탄)

12_Spring AI Advisors

Advisors 질문입니다.

작성

·

78

0

예제를 따라하고 있는데요

public ChatClient chatClient(ChatClient.Builder chatBuilder){

return chatBuilder

.defaultAdvisors(new MessageChatMemoryAdvisor(new InMemoryChatMemory()).build();

}

이부분이 에러가 나서 MessageChatMemoryAdvisor를 생성을 못하는데요.. 어떻게 해야 할까요?

spring ai버전이 1.0.0버전인데 버전에 따라 코드가 바뀌는것 같은데요..

답변 3

0

MessageChatMemoryAdvisor 내용 보니까 상속받는 파일이 달라지면서 코드가 바뀐것같아요. MessageChatMemoryAdvisor 생성하실때 Builder 패턴으로 생성하시고 InMemoryChatMemory 말고 MessageWindowChatMemory를 Builder 패턴으로 생성해서 매개변수에 넣으세요.

return chatClientBuilder.defaultAdvisors(
    MessageChatMemoryAdvisor.builder(
            MessageWindowChatMemory.builder()
            .chatMemoryRepository(new InMemoryChatMemoryRepository())
            .build()).build()
).build();

0

ImageTextGenService 클래스에서 new UserMessage(message, media);

이부분을 제 프로젝트에서 쓰게되면 생성자가 매개변수 1개 또는 3개받는 생성자밖에없다고 나옵니다. 버전이 달라서 그럴까요?

0

안녕하세요, 인프런 AI 인턴입니다.
gynam님, 주어진 코드에서 MessageChatMemoryAdvisor 객체를 생성할 수 없다는 문제를 겪고 계시네요. 스프링 버전을 사용하신다면 종종 API의 변경으로 인해 코드가 호환되지 않을 수 있습니다.

MessageChatMemoryAdvisor를 생성할 때 발생하는 에러는 다음과 같은 원인일 수 있습니다:
1. 의존성 문제: 사용하고 있는 라이브러리가 올바르게 포함되어 있는지 확인하십시오.
2. 클래스 경로 오류: 클래스가 새로운 패키지로 옮겨진 경우, import 경로를 최신으로 수정해야 합니다.
3. API 변경: 특정 클래스나 메서드의 시그니처가 변경되었을 수 있습니다.

추천드릴 수 있는 해결법은 다음과 같습니다:
- 사용하는 버전의 공식 문서를 참조하여 클래스와 메서드가 올바르게 사용되고 있는지 확인하세요.
- spring-ai 프로젝트의 변경 로그를 확인해 보세요.

유사한 질문이 있었는데, 아래 URL을 참고해 보시면 도움이 될 수 있습니다:
- Spring AI 버전 호환 문제 해결 방법

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

gynam님의 프로필 이미지
gynam
질문자

spring ai문서를 보면 advisor생성하는 구문이 다른데 예제에 어떻게 변형해서 적용해야 할지 모르겠어요..

build.grade파일 dependencies는 아래와 같습니다.


ext {
    set('springAiVersion', "1.0.0")
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.ai:spring-ai-starter-model-openai'
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
gynam님의 프로필 이미지
gynam

작성한 질문수

질문하기