Почему при использовании LangChainJS для подключения к Weaviate в Docker отказано в соединении?
Я пытаюсь использовать Weaviate в качестве векторного хранилища в приложении, которое собираю. Я запускаю Weaviate и свой сервер NodeJs в контейнерах в сети Docker Compose по умолчанию. Они подключаются, но Weaviate, кажется, отказывается от соединений, и я не могу понять, почему? Моя конфигурация Docker Compose следующая:
weaviate:
image: semitechnologies/weaviate:1.21.3
environment:
OPENAI_APIKEY: xxx
QUERY_DEFAULTS_LIMIT: 25
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'false'
PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
DEFAULT_VECTORIZER_MODULE: 'text2vec-openai'
ENABLE_MODULES: 'text2vec-openai'
CLUSTER_HOSTNAME: 'node1'
AUTHENTICATION_APIKEY_ENABLED: 'true'
AUTHENTICATION_APIKEY_ALLOWED_KEYS: 'xxx'
AUTHENTICATION_APIKEY_USERS: 'my_app'
ports:
- 8080:8080
volumes:
- ./docker/weaviate/vectors:/var/lib/weaviate
command:
- --port
- '8080'
- --scheme
- http
В своем приложении я создаю клиент Weaviate и подключаюсь следующим образом:
const client = weaviate.client({
scheme: 'http',
host: 'weaviate:8080',
apiKey: new weaviate.ApiKey('xxx')
});
await WeaviateStore.fromTexts(
texts,
metadata,
new OpenAIEmbeddings(),
{
client,
indexName: 'foo',
textKey: 'text',
metadataKeys: ['source']
}
);
}
Однако при вызове WeaviateStore.fromTexts() я вижу следующую ошибку:
Error: 'Error adding vectors' FetchError: request to http://weaviate:8080/v1/batch/objects failed, reason: connect ECONNREFUSED 192.168.48.3:8080
Судя по всему, запрос определяет местонахождение сервера, но он отклоняется. Я также пробовал это без ключа API и настройкиAUTHENTICATION_ANONYMOUS_ACCESS_ENABLED
кtrue
, но я получил то же сообщение об ошибке. Какой-нибудь совет о том, что я здесь делаю не так?
1 ответ
Дуда из Weaviate здесь!
В вашем командном операторе отсутствует хост для привязки, поэтому он, вероятно, ничего не прослушивает.
вот рабочий пример:
services:
weaviate:
image: semitechnologies/weaviate:1.21.3
environment:
OPENAI_APIKEY: xxx
QUERY_DEFAULTS_LIMIT: 25
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'false'
PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
DEFAULT_VECTORIZER_MODULE: 'text2vec-openai'
ENABLE_MODULES: 'text2vec-openai'
CLUSTER_HOSTNAME: 'node1'
AUTHENTICATION_APIKEY_ENABLED: 'true'
AUTHENTICATION_APIKEY_ALLOWED_KEYS: 'xxx'
AUTHENTICATION_APIKEY_USERS: 'my_app'
ports:
- 8080:8080
volumes:
- ./docker/weaviate/vectors:/var/lib/weaviate
command:
- --host
- 0.0.0.0
- --port
- '8080'
- --scheme
- http
Вы можете использовать наш конфигуратор Docker Compose , если хотите создать индивидуальный docker-compose :)
Спасибо за использование Weaviate!