Skip to content

Latest commit

 

History

History

embedding

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ChatGPT 和 K8S 实战之:Embedding 篇

启动 Qdrant 向量数据库

docker run --name vecdb -d -p 6333:6333 -p 6334:6334 qdrant/qdrant

在浏览器输入 http://localhost:6333 可以访问 Qdrant。Qdrant 目前没有提供 Web 界面,只可能通过 HTTP 或者 gRPC 的方式调用 API 来访问。

设置 OpenAI API Key

在环境变量中设置 OpenAI API Key。

export OPENAI_API_KEY=sk-xxxxxx

清洗数据,向量入库

构建流程:

从 StackOverflow 抓取数据 --> 清洗数据(特征过滤和正则抽取) --> 构建向量(调用 OpenAI embedding 接口) --> 形成 Point --> 入库(Qdrant) 

执行 go run prebuild.go 从 StackOverflow 抓取数据,对数据进行预处理(正则,去掉噪声),交给 OpenAI embedding 将文本转换为向量,最后存入 Qdrant 向量数据库。

输出结果:

uuid:"b77e3a553d706ca093052733c5488e5a"
uuid:"612a3ec17ff25c48e8768f09be70cce0"
uuid:"988f2d7680249c61c85916b99f088755"

获取其中一个 point 的内容。

http://localhost:6333/collections/kubernetes/points/b77e3a553d706ca093052733c5488e5a

# 返回结果
{
"result": {
"id": "b77e3a55-3d70-6ca0-9305-2733c5488e5a",
"payload": {
"answers": [
"As the handbook ( https://minikube.sigs.k8s.io/docs/handbook/pushing/#1-pushing-directly-to-the-in-cluster-docker-daemon-docker-env ) describes, you can reuse the Docker daemon from Minikube with eval $(minikube docker-env).\n\nSo to use an image without uploading it, you can follow these steps:\n\n* Set the environment variables with eval $(minikube docker-env)\n* Build the image with the Docker daemon of Minikube (eg docker build -t my-image . )\n* Set the image in the pod spec like the build tag (eg my-image )\n\n*Important note:* You have to run eval $(minikube docker-env) on each terminal you want to use, since it only sets the environment variables for the current shell session.",
"Very important to remember to run eval $(minikube docker-env) after closing the terminal you're working in BEFORE you try to rebuild images... just burned 6 hours fighting with an image that was not updating in minikube... looked like a package was not updating... really just not updating the image that minikube was referencing.\n\nIf u wanna back or exit env from minikube.. eval $(minikube docker-env -u)\n\nHow can I \"Set the imagePullPolicy to Never \" using kubectl ?\n\nNowdays, you can also use minikube cache add imagename:tag to push the image to the minikube - be sure to include the tag as well. Docs ( https://minikube.sigs.k8s.io/docs/handbook/pushing/#2-push-images-using-cache-command )",
"# Start minikube\nminikube start\n\n# Set docker env\neval $(minikube docker-env)             # unix shells\nminikube docker-env | Invoke-Expression # PowerShell\n\n# Build image\ndocker build -t foo:0.0.1 .\n\n# Run in minikube\nkubectl run hello-foo --image=foo:0.0.1 --image-pull-policy=Never\n\n# Check that it's running\nkubectl get pods",
"You can find the yml version of the above command line (in regards to the imagePullPolicy) here : kubernetes.io/docs/concepts/containers/images ( https://kubernetes.io/docs/concepts/containers/images/ )\n\nOn Windows eval $(minikube docker-env) was not working for me. minikube docker-env | Invoke-Expression seems to work in PowerShell. In other terminals one needs to read the last line returned by minikube docker-env. For example, in IntelliJ (on Windows) it is @FOR /f \"tokens=*\" %i IN ('minikube -p minikube docker-env') DO @%i You have to do this in any new terminal/session always before building the docker image.",
"I am getting following error while doing eval $(minikube docker-env). \"'none' driver does not support 'minikube docker-env' command\" It is also logged on github it seems. github.com/kubernetes/minikube/issues/2443 ( https://github.com/kubernetes/minikube/issues/2443 )",
"There is one easy and effective way to push your local Docker image directly to minikube, which will save time from building the images in minikube again.\n\nminikube image load <image name>",
"More details here ( https://minikube.sigs.k8s.io/docs/handbook/pushing/#2-push-images-using-cache-command )\n\nAll possible method to push images to minikube are mention here: https://minikube.sigs.k8s.io/docs/handbook/pushing/",
"I wonder why it's so slow. Sometimes it gets cancelled. Maybe not enough RAM",
"Is there a way to force a pod to pick up the new image when I upload it into minikube repeatedly? Every time I upload a new image version with the same name/tag the pod keeps working on the old image until I delete the image explicitly in minikube and load it again.",
"for anybody reading this anwer: it won't work without imagePullPolicy: Never If you check out the logs you'll see that minikube is trying to pull the image even if it knows about it ( minikube image ls )\nFeb 19 at 18:46",
"Notes:",
"*If wanting to create the registry on minikube's Docker* then run eval $(minikube docker-env) first (to make docker available on the host machine's terminal).\nOtherwise enter in the virtual machine via minikube ssh , and then proceed with the following steps",
"Use a local registry:\n\ndocker run -d -p 5000:5000 --restart=always --name local-registry registry:2\n\nNow tag your image properly:\n\ndocker tag ubuntu localhost:5000/ubuntu\n\nNote that localhost should be changed to dns name of the machine running registry container.\n\nNow push your image to local registry:\n\ndocker push localhost:5000/ubuntu\n\nYou should be able to pull it back:\n\ndocker pull localhost:5000/ubuntu\n\nNow change your yaml file to use the local registry.",
"| Now change your yaml file to use the local registry. Are you able to explain this a little bit? I pushed to the local registry (cool trick) but I have the same problem that I can't get minikube to connect to it.\n\n@ZachEstela change the image name in the yaml to <registryIP>:5000/ubuntu\n\n@FarhadFarahi If I give my laptop to you, how would you find out? I just want to know it. I followed docker tutorial steps to get docker for windows running.\n\n@FarhadFarahi: Please add to your answer that you'll need to add the local registry as insecure in order to use http: docs.docker.com/registry/insecure ( https://docs.docker.com/registry/insecure/ ) (may not apply when using localhost but does apply if using the local hostname).",
"This are the steps to setup a local registry.",
"Setup hostname in local machine: edit /etc/hosts to add this line\n\ndocker.local 127.0.0.1\n\nNow start a local registry (remove -d to run non-daemon mode) :\n\ndocker run -d -p 5000:5000 --restart=always --name registry registry:2\n\nNow tag your image properly:\n\ndocker tag ubuntu docker.local:5000/ubuntu\n\nNow push your image to local registry:\n\ndocker push docker.local:5000/ubuntu\n\nVerify that image is pushed:\n\ncurl -X GET http://docker.local:5000/v2/ubuntu/tags/list",
"ssh into minikube with: minukube ssh\n\nedit /etc/hosts to add this line\n\ndocker.local <your host machine's ip>\n\nVerify access:\n\ncurl -X GET http://docker.local:5000/v2/ubuntu/tags/list\n\nNow if you try to pull, yo might get an http access error.\n\n*Enable insecure access* :\n\nIf you are always planning to use minkube with this local setup then create a minikube to use insecure registry by default (wont work on existing cluster).\n\nminikube start --insecure-registry=\"docker.local:5000\"\n\nelse follow below steps:\n\nsystemctl stop docker\n\nedit the docker serice file: get path from systemctl status docker\n\nit might be :\n\n> /etc/systemd/system/docker.service.d/10-machine.conf or\n> /usr/lib/systemd/system/docker.service\n\nappend this text (replace 192.168.1.4 with your ip)\n\n> --insecure-registry docker.local:5000 --insecure-registry 192.168.1.4:5000\n\nto this line\n\n> ExecStart=/usr/bin/docker daemon -H tcp://0.0.0.0:2376 -H\n> unix:///var/run/docker.sock --tlsverify --tlscacert /etc/docker/ca.pem\n> --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem\n> --label provider=virtualbox --insecure-registry 10.0.0.0/24\n\nsystemctl daemon-reload\nsystemctl start docker\n\ntry pulling:\n\ndocker pull docker.local:5000/ubuntu\n\nNow change your yaml file to use local registry.\n\n>   containers:\n>     - name: ampl-django\n>       image: dockerhub/ubuntu\n\nto\n\n>   containers:\n>     - name: ampl-django\n>       image:\n> docker.local:5000/nymbleup",
"Newer versions of minikube allows you to load image from the local docker instance by running\n\nminikube image rm image <imagename>:<version>\nminikube image load <imagename>:<version> --daemon\n\nthe load command might show an error but the image still gets loaded to your minikube instance",
"this seems to be a great answer ... do you have any sources ?\n\njust found reference here: minikube.sigs.k8s.io/docs/handbook/pushing/… ( https://minikube.sigs.k8s.io/docs/handbook/pushing/#7-loading-directly-to-in-cluster-container-runtime )... the --daemon option is not really needed.",
"How long does it take? Its running since 20 minutes for 645MB image",
"minikube cache add <image>:<tag>\n\nyet, don't forget to set the imagePullPolicy: Never in your kubernetes deployment yamls, as it will ensure using locally added images instead of trying pull it remotely from the registry.",
"While this code may answer the question, providing additional context regarding why and/or how this code answers the question improves its long-term value.",
"One approach is to build the image locally and then do:\n\ndocker save imageNameGoesHere | pv | (eval $(minikube docker-env) && docker load)\n\nminikube docker-env might not return the correct info running under a different user / sudo. Instead you can run sudo -u yourUsername minikube docker-env.\n\nIt should return something like:\n\nexport DOCKER_TLS_VERIFY=\"1\"\nexport DOCKER_HOST=\"tcp://192.168.99.100:2376\"\nexport DOCKER_CERT_PATH=\"/home/chris/.minikube/certs\"\nexport DOCKER_API_VERSION=\"1.23\"\n# Run this command to configure your shell:\n# eval $(minikube docker-env)",
"The correct command is docker save imageNameGoesHere > pv | (eval $(minikube docker-env) && docker load)\n\ndocker save imageNameGoesHere | (eval $(minikube docker-env) && docker load) worked for me",
"kubectl run hdfs --image=fluxcapacitor/hdfs:latest --port=8989 --generator=run-pod/v1\n\nI found the information about the generator on the Kubernetes-dev forum:\n\n> to have imagePullPolicy set to Always by default. You can use this command\n> to get an imagePullPolicy of IfNotPresent , which will work for minikube :\n> kubectl run --image=<container> --generator=run-pod/v1\n> Dan Lorenc\n\nhttps://groups.google.com/forum/#!topic/kubernetes-dev/YfvWuFr_XOM",
"If anyone is looking to come back to the local environment after setting the minikube env, use following command.\n\neval $(docker-machine env -u)",
"Already posted as stackoverflow.com/questions/42564058/… ( https://stackoverflow.com/questions/42564058/how-to-use-local-docker-images-with-minikube#comment96193812_42564211 )\n\nWould be eval $(minikube docker-env -u) for minikube",
"# export the docker image to a tar file\ndocker save --output my-image.tar the.full.path.to/the/docker/image:the-tag\n# set local environment variables so that docker commands go to the docker in minikube\neval $(minikube docker-env)\n# or if on windows: @FOR /f \"tokens=*\" %i IN ('minikube docker-env') DO @%i\n# import the docker image from the tar file into minikube\ndocker load --input my-image.tar\n# cleanup - put docker back to normal\neval $(minikube docker-env -u)\n# or if on windows: @FOR /f \"tokens=*\" %i IN ('minikube docker-env -u') DO @%i\n\nThen running the image involves a command like the following. Make sure to include the \"--image-pull-policy=Never\" parameter.\n\nkubectl run my-image --image=the.full.path.to/the/docker/image:the-tag --image-pull-policy=Never --port=80",
"Well explained, worked like a charm. I only had to call docker save with sudo , and then set sudo chmod 664 my-image.tar to make it available for my current user.",
"From the kubernetes docs:\n\nhttps://kubernetes.io/docs/concepts/containers/images/#updating-images\n\n> The default pull policy is IfNotPresent which causes the Kubelet to skip\n> pulling an image if it already exists. If you would like to always force a\n> pull, you can do one of the following:\n> * set the imagePullPolicy of the container to Always;\n> * use :latest as the tag for the image to use;\n> * enable the AlwaysPullImages admission controller.",
"One idea would be to save the docker image locally and later load it into minikube as follows:\n\nLet say, for example, you already have puckel/docker-airflow image.",
"Save that image to local disk -\n\ndocker save puckel/docker-airflow > puckel_docker_airflow.tar",
"Now enter into minikube docker env -\n\neval $(minikube docker-env)",
"Load that locally saved image -\n\ndocker load < puckel_docker_airflow.tar\n\nIt is that simple and it works like a charm.",
"You still need the accepted answer's tip of Set the imagePullPolicy to Never. If your image is tagged with an address e.g. us.icr.io/mydiv/my-service:v0.0.1 then a deploy will try to remote pull this image. Since you've already manually copied the image, you need to suppress k8s from pulling the image from an address (container registry) it can't access.\n\[email protected] The steps above worked for me but I had to replace the latest tag in the image with a specific version and select this version in the create deploy command. The imagePullPolicy was automatically set to IfNotPresent and the image was loaded correctly without further changes.",
"minikube addons enable registry -p minikube\n\n💡 Registry addon on with docker uses 32769 please use that instead of default 5000\n📘 For more information see: https://minikube.sigs.k8s.io/docs/drivers/docker\n\ndocker tag ubuntu $(minikube ip -p minikube):32769/ubuntu\ndocker push $(minikube ip -p minikube):32769/ubuntu\n\nOR\n\nminikube addons enable registry\ndocker tag ubuntu $(minikube ip):32769/ubuntu\ndocker push $(minikube ip):32769/ubuntu\n\nThe above is good enough for development purpose. I am doing this on archlinux.",
"How do u refer to the image in the k8s specs? By localhost:32769/ubuntu or with the minikube ip or the registry dns name?",
"There is now a Minikube Registry addon, this is probably the easiest way. Here is how to use it: https://minikube.sigs.k8s.io/docs/tasks/registry/insecure/",
"For Windows users, the way I do it.\n\nI use the docker desktop to host my MiniKube image and use PowerShell as a console.\n\nFirst I create my MiniKube cluster:\n\nminikube start --bootstrapper=kubeadm --vm-driver=docker --profile \"cluster1\"\n\nFor instance, let's say I have a Dockerfile contains:\n\nFROM nginx\n\n2 steps way, Build an image and Upload the image to minikube\n\ndocker build -t mynginximage .\nminikube image load mynginximage\n\n*Or* 1 step way, Build directly in MiniKube\n\nminikube image build -t mynginximage .\n\nTo run my image in MiniKube\n\nkubectl run myweb --image=mynginximage --image-pull-policy=Never\n\nor via mynginxpod.yaml file:\n\napiVersion: v1\nkind: Pod\nmetadata:\nname: myweb\nspec:\ncontainers:\nimage: mynginximage\nimagePullPolicy: Never\nports:\n\nAnd kubectl apply -f .\\mynginxpod.yaml\n\nNow to test it, run:\n\nkubectl get pods myweb\nNAME    READY   STATUS    RESTARTS   AGE\nmyweb   1/1     Running   0          25s\n\nTo access it:\n\nkubectl exec --stdin --tty myweb -- /bin/bash\n\nTo expose it:\n\nkubectl port-forward nginx 3333:80",
"answered Jan 6 at 23:49",
"You should know that *docker in your local machine* is separated from the *docker in your minikube cluster*.\n\nSo you should *load/copy* a Docker image from your *local machine* into the *minikube cluster* :\n\nminikube image load <IMAGE_NAME>",
"#instead of:\ndocker image build -t <IMAGE_NAME> .\n#do:\nminikube image build -t <IMAGE_NAME> .",
"Error: unknown command \"build\" for \"minikube\" ; what minikube version are you talking about?\n\n@Kamafeather minikube version: v1.28.0 commit: 986b1ebd987211ed16f8cc10aed7d2c42fc8392f you can install it from here ( https://minikube.sigs.k8s.io/docs/start/ )",
"There are two easy ways to load local images to Minikube.\n\nAlways make sure to set imagePullPolicy: Never in your deployment yaml.\n\nEg:\n\nspec:\ncontainers:\nimage: pz/demo\nimagePullPolicy: Never\nports:\n\nLuckily, there are two straightforward commands to help with this.\n\nGeneral\nExample\n\nminikube image load pz/demo",
"* With the previous way, you always build the Docker image on your local machine and then move it to the Minikube container, which again takes a bit of time, even though not a lot.\n\nUsing the image build command of Minikube, we can build the image directly inside the Minikube container.",
"minikube image build -t <IMAGE_NAME> <PATH_TO_DOCKERFILE>",
"minikube image build -t pz/demo /New APP/Dockerfile\n\nUsing the minikube image build command the image is instantly available to Minikkube and doesn't have to be explicitly loaded in a second step via the minikube image load command.",
"kubectl port-forward deployment/myapp 8080:8080",
"Ref: https://levelup.gitconnected.com/two-easy-ways-to-use-local-docker-images-in-minikube-cd4dcb1a5379",
"Other answers suppose you use minikube with VM, so your local images are not accessible from minikube VM.\n\nIn case if you use minikube with --vm-driver=none , you can easily reuse local images by setting image_pull_policy to Never:\n\nkubectl run hello-foo --image=foo --image-pull-policy=Never\n\nor setting imagePullPolicy field for cotainers in corresponding.yaml manifests.",
"steps to run local docker images in kubernetes\n1. eval $(minikube -p minikube docker-env)\n2. in the artifact file , under spec section -> containers\nadd imagePullPolicy: IfNotPresent\nor imagePullPolicy: Never\n\napiVersion: \"v1\"\nkind: Pod\nmetadata:\nname: web\nlabels:\nname: web\napp: demo\nspec:\ncontainers:\nimage: web:latest\nimagePullPolicy: IfNotPresent\nports:\nname: http\nprotocol: TCP\n\n3. then run kubectl create -f <filename>",
"For minikube on Docker:\n\nOption 1: Using minikube registry\n\n* Check your minikube ports docker ps",
"Build your docker image tagging it: docker build -t 127.0.0.1:32769/hello .",
"Push the image to the minikube registry: docker push 127.0.0.1:32769/hello",
"Check if it's there: curl http://localhost:32769/v2/_catalog",
"Build some deployment using the internal port: kubectl create deployment hello --image=127.0.0.1:5000/hello\n\nYour image is right now in minikube container, to see it write:\n\neval $(minikube -p <PROFILE> docker-env)\ndocker images",
"Option 2: Not using registry\n\n* Switch to minikube container Docker: eval $(minikube -p <PROFILE> docker-env)\n* Build your image: docker build -t hello .\n* Create some deployment: kubectl create deployment hello --image=hello\n\nAt the end change the deployment ImagePullPolicy from Always to IfNotPresent:\n\nkubectl edit deployment hello",
"v1.24.0 ( https://github.com/kubernetes/minikube/releases/tag/v1.24.0 )\n\n> Add --no-kubernetes flag to start minikube without Kubernetes\n> See PR 12848 ( https://github.com/kubernetes/minikube/pull/12848 ) , for\n\nThat gives you:\n\nmk start --no-kubernetes\nminikube v1.24.0-beta.0 on Darwin 11.6 (arm64)\nAutomatically selected the docker driver\nStarting minikube without Kubernetes minikube in cluster minikube\nPulling base image ...\nDone! minikube is ready without Kubernetes!\n\n> --------------------------------\n>  Things to try without Kubernetes\n> --------------------------------\n> * \" minikube ssh \" to SSH into minikube's node.\n> * \" minikube docker-env \" to build images by pointing to the docker inside\n> minikube\n> * \" minikube image \" to build images without docker",
"building off the earlier answer to use eval $(minikube docker-env) in order to load up minikube's docker environment, for an easier toggle, add the following function to your shell rc file:\n\ndockube() {\nif [[ $1 = 'which' ]]; then\nif [[ $MINIKUBE_ACTIVE_DOCKERD = 'minikube' ]]; then\necho $MINIKUBE_ACTIVE_DOCKERD\nelse\necho 'system'\nfi\nreturn\nfi\n\nif [[ $MINIKUBE_ACTIVE_DOCKERD = 'minikube' ]]; then\neval $(minikube docker-env -u)\necho \"now using system docker\"\nelse\neval $(minikube -p minikube docker-env)\necho \"now using minikube docker\"\nfi\n\ndockube with no argument will toggle between the system and minikube docker environment, and dockube which will return which one is in use.",
"what if you could just run k8s within docker's vm? there's native support for this with the more recent versions of docker desktop... you just need to enable that support.\n\nhttps://www.docker.com/blog/kubernetes-is-now-available-in-docker-desktop-stable-channel/ https://www.docker.com/blog/docker-windows-desktop-now-kubernetes/\n\nhow i found this out:",
"disclaimer: not sure how switching between windows/linux containers would impact anything.",
"I think I also had to set the imagePullPolicies to IfNotPresent as well",
"* setup minikube docker-env\n* again build the same docker image (using minikube docker-env)\n* change imagePullPolicy to *Never* in your deployment",
"\"eval $(minikube docker-env)\"\n\nIf you run below command it will show where your minikube looks for docker.\n\n~$ minikube docker-env\nexport DOCKER_TLS_VERIFY=\"1\"\nexport DOCKER_HOST=\"tcp://192.168.37.192:2376\"\nexport DOCKER_CERT_PATH=\"/home/ubuntu/.minikube/certs\"\nexport MINIKUBE_ACTIVE_DOCKERD=\"minikube\"\n\n# eval $(minikube -p minikube docker-env)\n\nYou have to again build images once you setup minikube docker-env else it will fail.",
"Instead use minikube image load imagename:tag",
"If I understand, you have local images, maybe passed by a usb pen and want to load it in minikube?\n\nJust load the image like: \nWith this, in kubernetes yaml file, you can change the *imagePullPolicy* to *Never* , and it will be find because you just loaded it in minikube.\n\nHad this problem, done this and worked.",
"Most of the answers are already great. But one important thing I have faced is that if you are using BuildKit\n\n> (DOCKER_BUILDKIT=1)\n\nthen the images created after executing the eval $(minkube docker-env) \nSo remove any of the references if you are using below\n\n> -mount=type=cache,target=/root/.m2"
],
"question": "I have several docker images that I want to use with minikube. I don't want to first have to upload and then download the same image instead of just using the local image directly. How do I do this?\n\nStuff I tried:\n\nkubectl run hdfs --image=fluxcapacitor/hdfs:latest --port=8989\nkubectl run hdfs --image=fluxcapacitor/hdfs:latest --port=8989 imagePullPolicy=Never\n\nOutput:\n\nNAME                    READY     STATUS              RESTARTS   AGE\nhdfs-2425930030-q0sdl   0/1       ContainerCreating   0          10m\n\nIt just gets stuck on some status but never reaches the ready state.\n\n2. I tried creating a registry and then putting images into it but that didn't work either. I might've done that incorrectly but I can't find proper instructions to do this task.\n\nPlease provide instructions to use local docker images in local kubernetes instance.\nOS: ubuntu 16.04\nDocker : Docker version 1.13.1, build 092cba3\nKubernetes :",
"title": "How to use local docker images with Minikube?"
},
"vector": [
-0.00012789486,
0.003943195,
0.034262665,
-0.010562737,
-0.02476639,
0.020731492,
-0.02831221,
-0.010576322,
0.014196862,
-0.027782375,
0.025296224,
0.0089664385,
0.00044492556,
-0.012118277,
-0.016329786,
0.0062900926,
0.011289561,
-0.02855675,
0.020256,
-0.03608312,
-0.019970704,
0.027211783,
0.027075928,
-0.021519452,
-0.020677151,
0.02939905,
0.021125473,
-0.0053560883,
-0.0021889657,
-0.007390519,
0.038474172,
-0.014848966,
-0.007193529,
0.0010630664,
-0.0043235896,
0.012851896,
0.028991485,
-0.019603895,
-0.004490012,
0.0013177948,
-0.010426881,
-0.03339319,
0.022388926,
-0.0315999,
-0.0067859637,
0.009394382,
-0.003970366,
-0.0074924105,
-0.014237618,
-0.00761468,
-0.006463308,
0.014781038,
-0.034615885,
0.00024920926,
-0.0052338187,
-0.004140185,
-0.030078325,
0.003061835,
0.009401175,
-0.0062017865,
-0.0002553652,
0.012559807,
0.00014402767,
0.008776241,
-0.0017932877,
-0.011248805,
0.015419558,
0.006205183,
0.0002046318,
-0.0055191144,
0.03371924,
0.019481625,
-0.007641851,
-0.02131567,
0.02158738,
-0.034860425,
-0.01577278,
-0.004248869,
0.016574325,
0.00479229,
0.0072071147,
-0.004894181,
-0.01259377,
0.03996858,
0.001868008,
0.014156105,
0.020147316,
0.013069264,
0.008158101,
0.0074108974,
0.022049287,
0.032822598,
0.03950667,
0.0039635734,
0.0029599436,
0.011832981,
0.015704853,
0.005790825,
-0.014522914,
-0.030322865,
-0.033556215,
0.033474702,
-0.0026186076,
-0.022035701,
-0.0122201685,
0.0150255775,
0.031110825,
-0.01323229,
0.020772249,
-0.022117214,
-0.021234157,
0.02725254,
-0.001095332,
-0.006079517,
-0.0061542373,
-0.01882952,
0.014183275,
-0.025921158,
0.007995075,
0.0063002817,
0.0129809575,
0.020120144,
0.005030036,
-0.010488016,
0.006076121,
0.016886793,
-0.013565135,
-0.010583115,
0.007845634,
-0.02079942,
0.059015468,
0.024413167,
-0.0057161045,
-0.011561272,
-0.014998406,
-0.0016480925,
-0.010297819,
-0.0074380683,
-0.012926616,
0.008164893,
0.00899361,
0.01998429,
-0.007709779,
-0.013870809,
-0.00867435,
0.01801439,
0.0009925915,
0.0020599035,
-0.006402173,
-0.020256,
-0.00031756135,
-0.015215775,
-0.026043428,
-0.0077641206,
0.017131332,
0.044669166,
0.0013526076,
0.0006869175,
-0.006813135,
0.006008193,
0.012179412,
0.03491477,
-0.015813537,
-0.0020463178,
-0.0035967645,
0.018761594,
0.034941938,
0.023136128,
-0.016968306,
0.019834848,
0.025880402,
0.0002118491,
-0.0752094,
0.02567662,
-0.013877601,
0.003384491,
0.012328853,
0.016696595,
-0.00902078,
-0.028285038,
-0.0013194929,
-0.008878132,
-0.026287967,
0.02079942,
-0.011235219,
-0.022728562,
-0.010039694,
-0.0046734163,
0.013279839,
0.0074652396,
0.016234688,
0.0055394927,
-0.012974165,
0.0021482091,
-0.5968931,
-0.030105498,
-0.012383195,
-0.033501875,
0.007838841,
0.027075928,
0.008171686,
0.015079919,
0.0020989617,
0.019454455,
0.0030465513,
0.0029056016,
-0.0066093523,
0.0026695533,
-0.0047379476,
-0.040946737,
0.008565666,
-0.036979765,
0.011024644,
-0.0032333522,
-0.008416225,
0.0059300764,
-0.0082871625,
0.0018187605,
-0.006025175,
-0.03684391,
0.0062085795,
-0.017593239,
-0.0065957666,
0.034507204,
-0.031464048,
0.013639855,
0.024087114,
-0.0048432355,
0.03972404,
-0.0022823662,
-0.04526693,
-0.006310471,
-0.011099364,
0.048527453,
-0.0031212715,
-0.0065516136,
0.03575707,
-0.0054681688,
-0.029697932,
-0.0025387928,
0.00003093888,
-0.015011992,
-0.023856161,
0.014903308,
-0.008572458,
0.011669955,
0.01586788,
0.024983758,
-0.0026746478,
-0.021302084,
0.029942472,
-0.002280668,
0.009992145,
0.020269586,
0.012899444,
0.0079067685,
-0.03184444,
-0.016818864,
-0.016370542,
0.018313272,
-0.024888659,
-0.027483493,
0.010515187,
-0.018489882,
0.028040498,
0.011649577,
0.011330318,
-0.01495765,
0.00035534607,
0.06488441,
0.01495765,
0.006099895,
0.0038854568,
0.013470036,
0.015215775,
-0.015039163,
-0.020242414,
-0.00010608375,
0.0074924105,
0.0106306635,
-0.05426054,
-0.023693135,
-0.0050436216,
0.006375002,
0.007757328,
0.028257867,
0.0042556617,
-0.046462454,
0.021831919,
0.033067137,
-0.01330701,
0.002362181,
0.007702986,
-0.017688338,
0.011561272,
-0.014074592,
-0.004418688,
-0.0032758068,
0.033800755,
-0.02434524,
-0.0067621893,
0.010066865,
0.03996858,
-0.023883332,
0.003589972,
0.031627074,
0.0028631468,
0.021994945,
0.0075467527,
-0.03472457,
0.002243308,
0.035594042,
0.021397183,
0.0019868813,
0.014414229,
-0.01762041,
0.010854824,
-0.011214841,
-0.018584982,
-0.017566068,
0.008463775,
0.002272177,
-0.0003752998,
-0.0066806762,
-0.012824724,
0.032224838,
0.026804218,
-0.0028971105,
0.009326454,
0.023231227,
0.005722897,
0.014319131,
-0.0052100443,
-0.027687276,
-0.00043601007,
0.008918889,
0.010229891,
-0.0096593,
0.0026101167,
-0.014658769,
-0.03154556,
-0.0033709055,
0.0115341,
0.02831221,
-0.004506994,
-0.024983758,
-0.017212845,
0.0013678913,
-0.0034507203,
0.0035967645,
-0.015908636,
-0.03733299,
0.015704853,
-0.017783437,
-0.01071897,
0.01825893,
-0.022144387,
0.0081377225,
-0.022117214,
-0.00091447483,
0.029589247,
0.006079517,
0.011955251,
-0.0048092715,
-0.023380667,
-0.029344708,
-0.0070916377,
0.00094843865,
-0.0006767284,
0.0044560484,
-0.011568064,
-0.010651042,
-0.008069795,
0.0019495211,
0.0018985755,
-0.010488016,
0.020120144,
0.041299958,
0.037441675,
0.017022647,
0.026505336,
0.033311676,
-0.035295162,
0.021533038,
-0.01776985,
0.019590309,
0.01173109,
0.03130102,
0.023543693,
-0.00691163,
0.008898511,
0.010929545,
0.005512322,
0.006582181,
-0.013694197,
-0.005474962,
0.017321529,
-0.02037827,
0.012539429,
-0.014427815,
-0.003725827,
-0.013667027,
-0.009380797,
0.013476829,
0.020025047,
-0.03659937,
-0.020446196,
-0.0094962735,
0.023000274,
-0.0055293036,
-0.02518754,
-0.0045851106,
-0.014781038,
0.032713916,
0.008443397,
-0.018367613,
0.023937674,
0.003285996,
-0.041734695,
-0.0009713642,
-0.0026169093,
-0.013463244,
0.0053832596,
0.00081470626,
-0.017538898,
0.00021354729,
0.013599099,
0.011017851,
0.028420893,
0.01114012,
0.016615082,
0.009312869,
-0.0013797786,
-0.02806767,
0.014522914,
0.003043155,
0.030757602,
-0.024576193,
0.01707699,
0.022361754,
0.013123605,
0.030621747,
-0.02836655,
-0.003916024,
-0.0073497626,
-0.014848966,
0.0090411585,
-0.0028325794,
-0.04157167,
-0.008117344,
0.004894181,
0.009645714,
0.013422487,
0.026994415,
-0.0039975373,
0.014726697,
0.026885731,
-0.029888129,
0.034833256,
-0.009482688,
-0.014237618,
-0.023421424,
-0.010542358,
0.0027884266,
-0.018204587,
0.022878004,
0.002632193,
-0.03727865,
0.02358445,
0.018394785,
-0.008253199,
0.008375469,
0.020731492,
0.028909972,
-0.018788764,
-0.02228024,
0.0319803,
0.002020845,
0.009992145,
-0.011411831,
-0.04102825,
0.02116623,
-0.026777046,
0.020731492,
0.021546623,
0.02942622,
0.009217771,
-0.01429196,
-0.007641851,
-0.005899509,
0.015215775,
-0.0024385995,
0.015636925,
0.011201255,
-0.027958985,
-0.010019315,
-0.012389988,
-0.00635802,
0.039832722,
0.0037156378,
0.002854656,
-0.0067044506,
0.0066399197,
-0.014577256,
-0.014618012,
-0.0033810947,
-0.01813666,
-0.014305545,
-0.0003462183,
0.018598568,
-0.028122012,
0.00576705,
0.015813537,
0.024032772,
-0.009761191,
-0.02116623,
-0.009238149,
0.028203525,
0.0025201126,
0.0038175292,
0.029100168,
0.01692755,
-0.009292491,
0.015270117,
-0.0024810543,
-0.020649979,
-0.0043745353,
-0.005981022,
-0.03230635,
-0.0013424185,
-0.03018701,
-0.009435139,
0.025146784,
-0.002756161,
-0.016818864,
-0.02028317,
-0.018326856,
-0.011031437,
0.0018646116,
-0.0046666237,
0.024970172,
0.01064425,
0.00835509,
0.019617481,
0.018381199,
0.017498141,
0.02210363,
-0.0079814885,
-0.0006189899,
0.002603324,
0.016642254,
0.0074380683,
-0.008830584,
0.026029844,
-0.0055089253,
0.023204057,
-0.005074189,
0.03763187,
-0.0132051185,
0.0037156378,
0.0043066074,
-0.0021057546,
0.016153175,
-0.004191131,
-0.008171686,
0.00859963,
-0.002408032,
0.0040450864,
0.022782905,
0.004418688,
0.0036205393,
-0.015881464,
0.0124511225,
0.0041265995,
-0.0030159838,
-0.01601732,
-0.001068161,
-0.016465642,
-0.023013858,
-0.0009832515,
-0.0022942536,
0.0008754165,
-0.01079369,
-0.021655308,
-0.025907574,
-0.022619879,
-0.03890891,
-0.0116903335,
-0.0116156135,
-0.020242414,
-0.012573392,
0.03255089,
-0.012668491,
0.056026656,
0.0035797828,
-0.023530109,
-0.020174487,
0.01680528,
-0.0024504869,
-0.0121454485,
0.0036409176,
-0.035186477,
-0.0084366035,
-0.016778108,
0.033936612,
0.02022883,
-0.012301682,
0.011180877,
-0.004734551,
0.016126003,
0.009475895,
-0.040973905,
0.008192064,
0.017009063,
0.00842981,
0.003072024,
-0.02518754,
-0.023353497,
0.018055147,
-0.024005601,
0.014631597,
-0.0032893925,
-0.03795792,
-0.01224734,
-0.017661167,
-0.0079067685,
-0.0017542294,
0.0042352835,
-0.0071391873,
-0.01656074,
-0.016791694,
0.0038990423,
0.0067995493,
-0.0061304625,
0.017484555,
0.009917424,
-0.009998937,
0.03067609,
0.017579654,
-0.017158503,
0.02358445,
0.0028155975,
-0.0000823091,
0.025690205,
-0.012627734,
-0.028991485,
-0.03630049,
-0.0022602896,
0.009306076,
0.033800755,
-0.028692603,
-0.00035725653,
-0.022579122,
-0.013870809,
0.004822857,
0.028828459,
-0.013544757,
-0.028529577,
-0.026980828,
0.0035424225,
0.016818864,
-0.03236069,
-0.02003863,
-0.018612152,
-0.03363773,
0.013347766,
0.038528513,
0.01692755,
0.045538638,
0.017430212,
-0.016207516,
0.0028937142,
-0.022905175,
-0.033990953,
0.020296756,
0.0026644587,
0.030350037,
0.010746141,
0.026396653,
0.009129465,
0.025500009,
0.0031467443,
0.006425948,
-0.0015767686,
0.0049722977,
0.013415694,
-0.012682077,
-0.034561545,
0.02355728,
-0.003107686,
0.02370672,
0.02912734,
0.004123203,
-0.013374938,
-0.011975629,
-0.012817931,
-0.020989617,
-0.015134262,
0.006381795,
0.031192338,
-0.03342036,
-0.009693263,
-0.018693665,
0.0033267525,
0.010902374,
-0.00470738,
0.044180088,
-0.018761594,
0.022198727,
-0.020663565,
0.02210363,
-0.00761468,
-0.0077641206,
0.014033835,
0.011547686,
-0.011663163,
0.006215372,
0.008069795,
0.032686744,
-0.0011717505,
0.01897896,
0.02264705,
-0.022198727,
0.03409964,
-0.005461376,
-0.011296354,
0.0056719515,
-0.027565006,
-0.03173576,
-0.031464048,
-0.02346218,
0.030839115,
-0.025581522,
0.008327919,
-0.012627734,
0.017375872,
0.0086675575,
-0.027931815,
-0.012349231,
0.010970302,
0.01810949,
-0.0063987765,
0.00549534,
0.010657835,
0.0021685874,
0.0051319273,
-0.0066229375,
-0.009577787,
-0.011011058,
-0.006969368,
0.049424097,
0.00842981,
-0.023652378,
0.018354028,
-0.011099364,
-0.0008465473,
-0.018761594,
0.019590309,
0.00404169,
0.027021585,
-0.032170493,
-0.0038345112,
-0.030811943,
0.009000402,
-0.009244941,
0.018394785,
0.0044832192,
0.013123605,
-0.010216306,
0.020500539,
-0.011432209,
0.017362285,
0.007628266,
0.01251905,
0.0011972233,
0.02107113,
-0.036382005,
0.008205649,
-0.020813005,
0.036110293,
0.0019291429,
-0.006898044,
0.00612367,
0.007723364,
-0.006707847,
-0.030621747,
0.008837376,
0.036952596,
-0.0026627604,
0.006079517,
-0.012002801,
0.008545288,
0.012648112,
-0.021818334,
0.00043516097,
-0.0031399517,
-0.010460845,
0.005064,
0.04450614,
-0.009319662,
-0.021247743,
-0.012294889,
-0.010304611,
-0.014183275,
-0.013585513,
0.01205035,
0.016642254,
-0.039316475,
0.005403638,
-0.03841983,
-0.023231227,
-0.0058247885,
0.00859963,
0.01692755,
0.0155554125,
0.032876942,
-0.042169433,
0.0182861,
0.016058076,
-0.017416628,
-0.03526799,
0.01565051,
0.0027425755,
-0.022579122,
-0.0064055696,
-0.0014757264,
-0.05803731,
-0.038039435,
0.015473899,
0.02079942,
0.0026152113,
0.001410346,
-0.008538495,
-0.006014986,
0.012811139,
-0.03265957,
0.00014254174,
0.023530109,
-0.020935275,
-0.008423018,
0.00086947286,
-0.009170221,
-0.01719926,
-0.044098575,
-0.001794986,
0.021777578,
0.005379863,
-0.016003734,
0.03467023,
0.0036816741,
-0.00043176458,
0.001204016,
-0.0040926356,
-0.014740282,
-0.028964315,
0.0015385593,
0.02131567,
0.016778108,
0.025690205,
0.021791162,
0.030947799,
0.008334712,
-0.010447259,
-0.0034286438,
-0.025364153,
-0.029181682,
-0.009441932,
-0.006052346,
0.0021499074,
0.033990953,
-0.015392386,
-0.008029038,
-0.019576725,
-0.0070237103,
0.0027103098,
-0.019454455,
0.0074108974,
-0.007424483,
0.0040790504,
0.0023689738,
-0.007084845,
0.02942622,
0.00073446677,
-0.009781569,
0.0068538915,
0.000768006,
-0.009767984,
-0.014305545,
0.01613959,
-0.0011301448,
-0.0013721368,
0.002649175,
0.01008045,
0.027958985,
0.0049009738,
0.027755203,
-0.0018900845,
-0.005002865,
-0.026804218,
-0.02855675,
0.007866012,
0.0074380683,
0.018897448,
-0.040158775,
-0.018788764,
0.030757602,
0.003878664,
0.007275042,
0.009394382,
-0.002002165,
0.0048262533,
0.026029844,
0.0065414244,
0.023095371,
-0.006062535,
-0.010392917,
0.0105967,
-0.010610285,
0.0045409575,
0.02885563,
-0.0031297626,
-0.0055327,
-0.008470567,
0.019237086,
-0.04450614,
-0.019848434,
-0.025350567,
-0.014590841,
-0.023964845,
0.02040544,
0.000090269365,
-0.010562737,
0.014441401,
0.007003332,
0.036708057,
0.003224861,
0.0009908933,
-0.019332185,
-0.019821264,
-0.0016090343,
0.0079814885,
-0.0038854568,
-0.0017347002,
-0.012281303,
0.010848032,
-0.0021482091,
0.018191002,
-0.009428346,
-0.009869875,
-0.029072998,
-0.018095903,
0.022837248,
0.009910632,
0.012783968,
0.20736927,
-0.0031552354,
0.0072207004,
0.026450993,
0.019495212,
0.008776241,
-0.0064565153,
0.018544225,
0.009292491,
0.01946804,
0.005970833,
-0.008844169,
-0.014278375,
-0.0062221647,
0.019237086,
-0.012879066,
-0.032387864,
-0.011602028,
-0.050212055,
-0.00020887726,
0.0036816741,
-0.0055428892,
-0.009652507,
-0.00796111,
0.0150255775,
-0.003644314,
0.01946804,
0.045239758,
0.014699525,
0.019698994,
-0.023380667,
-0.014658769,
0.0021974568,
-0.0069897464,
-0.00022437325,
-0.016343372,
0.008470567,
-0.016533569,
0.018150246,
0.015582584,
0.01535163,
-0.04138147,
-0.01145938,
-0.0021923622,
-0.022701392,
-0.020745078,
0.008626801,
-0.012634527,
0.02742915,
-0.015636925,
-0.035431016,
-0.008450189,
0.03515931,
0.025608692,
-0.00019454879,
-0.006324056,
-0.0072342856,
-0.021478696,
-0.007560338,
0.018612152,
0.008701521,
0.021831919,
0.002146511,
0.018218173,
-0.02555435,
0.010881996,
-0.006605956,
0.01801439,
0.02858392,
0.00592668,
0.013565135,
-0.0064089657,
0.009061537,
-0.023054615,
-0.0045409575,
-0.02806767,
0.033692073,
0.004425481,
0.03477891,
0.028801288,
0.0010647646,
0.007275042,
0.008565666,
0.018761594,
0.0023842575,
-0.043881208,
0.021247743,
-0.005936869,
-0.023013858,
-0.016764523,
0.0009365513,
-0.012423951,
-0.01480821,
-0.022551952,
0.007505996,
0.0043711388,
0.014128934,
0.02961642,
-0.011751468,
0.0008592837,
-0.028937142,
0.05029357,
0.050157715,
0.008728692,
-0.0034456258,
0.015691267,
-0.008932475,
0.012301682,
0.005838374,
-0.021845505,
0.019508796,
-0.0421966,
-0.0011912796,
-0.0077980845,
-0.015664097,
0.027578592,
-0.0065855775,
-0.023828989,
-0.011384659,
-0.0046224706,
-0.0068335133,
-0.025323397,
0.020242414,
-0.0046326597,
-0.012118277,
0.0053391065,
-0.023598036,
-0.0013763823,
-0.003878664,
-0.04157167,
0.009265319,
0.010508394,
0.013014922,
-0.0070440886,
-0.0056006275,
-0.01801439,
-0.0070780525,
-0.026695533,
0.012654905,
-0.0071527725,
0.0013755332,
0.0035933682,
0.021899847,
-0.002083678,
-0.036110293,
-0.028828459,
0.0075127888,
0.017443798,
-0.01916916,
-0.03018701,
-0.009387589,
-0.017036233,
-0.011839774,
-0.020690735,
0.022932345,
0.0025303017,
-0.0049349377,
-0.0011437304,
-0.008613215,
0.026478166,
-0.018000804,
-0.0059164907,
0.021614552,
-0.021234157,
-0.043473642,
-0.026084185,
-0.16987325,
0.0035356297,
0.025119614,
-0.029725103,
0.029697932,
0.01919633,
0.020215243,
-0.016343372,
-0.029725103,
-0.0048636138,
0.006687469,
-0.0028410703,
-0.024888659,
-0.025269054,
0.003518648,
0.009937802,
0.005936869,
-0.00585196,
0.05349975,
0.016221102,
0.0423868,
0.0069354046,
0.03472457,
-0.032768257,
-0.022076458,
-0.0056787445,
-0.03627332,
-0.0053153317,
-0.015297288,
0.0009543823,
-0.012913031,
-0.016492812,
0.011078985,
-0.0071256016,
0.008755863,
0.00016536117,
0.0011564668,
0.0030465513,
0.0061372556,
0.02449468,
-0.0071595656,
0.043473642,
0.033746414,
-0.0013610986,
-0.012770383,
-0.006008193,
-0.010277441,
-0.015541827,
0.007112016,
0.008117344,
0.00084867,
-0.010888789,
-0.02730688,
-0.0038752677,
0.010087243,
0.022674222,
0.0062459395,
0.018734422,
-0.013490414,
-0.019114817,
0.0031705191,
-0.038881738,
-0.0007022012,
-0.016750937,
-0.0336649,
-0.0103317825,
-0.018082317,
0.007533167,
-0.008226028,
-0.0024538832,
-0.014305545,
-0.01840837,
0.021967774,
0.012668491,
0.019128403,
-0.005064,
-0.000103695675,
0.017036233,
0.014631597,
0.024861488,
-0.011880531,
0.058145996,
-0.011561272,
0.021763992,
-0.007730157,
0.008518117,
-0.037224304,
0.006018382,
0.007098431,
0.013123605,
0.03284977,
0.0026967244,
-0.018584982,
-0.016452055,
0.018761594,
0.022185143,
-0.0028886197,
0.0027680483,
0.012933409,
-0.023679549,
0.0120707285,
-0.0061882013,
-0.01656074,
0.021546623,
0.03396378,
0.034615885,
0.005440998,
0.024195798,
0.03418115,
0.0022874607,
-0.017851364,
0.0036918633,
0.02543208,
0.012165827,
0.014373473,
0.015976563,
-0.0003052495,
0.008633593,
0.027510663,
-0.016873207,
-0.00085334,
-0.011174085,
-0.004445859,
0.002019147,
-0.011785433,
-0.0260706,
-0.10210872,
-0.019454455,
0.002756161,
0.004062068,
-0.016465642,
-0.0048262533,
0.0030363621,
0.010915959,
-0.015120676,
0.017335115,
-0.021329256,
-0.0021991548,
0.0029531508,
-0.0025982293,
-0.013796088,
0.0116903335,
0.005369674,
-0.0026237022,
0.01357872,
0.008484153,
0.018394785,
-0.013802881,
-0.0132051185,
-0.001427328,
0.00427604,
-0.02134284,
-0.025785305,
0.02555435,
0.0006835211,
-0.0010265553,
0.008273577,
-0.015242945,
-0.015134262,
-0.010168756,
-0.009401175,
0.012974165,
-0.019454455,
-0.008490945,
0.01776985,
-0.017389456,
0.012111485,
0.006534632,
0.02200853,
0.0017177183,
-0.016506398,
0.009666093,
-0.030648917,
0.0061542373,
0.0011335412,
0.016153175,
-0.04138147,
-0.0028359757,
-0.03915345,
0.0004992676,
0.00012619668,
-0.004123203,
0.02346218,
0.0020429215,
-0.016356958,
0.0030057947,
-0.0062731104,
-0.0041367887,
-0.020758664,
0.004146978,
0.010956716,
0.015596169,
-0.02631514,
-0.013191533,
-0.016655838,
0.0011615613,
-0.02861109,
-0.023543693,
-0.017973633,
-0.0069829538,
-0.018191002,
-0.022592708,
0.014319131,
-0.026695533,
-0.0036578993,
0.0077165714,
-0.010800483,
-0.020731492,
-0.018517055,
-0.041354302,
0.017538898,
0.017267186,
-0.012709248,
-0.0018034768,
-0.01471311,
-0.046978705,
-0.018530639,
0.0008648028,
-0.001759324,
-0.008049416,
-0.0012846801,
-0.010888789,
0.008321127,
0.010854824,
0.017117746,
0.014944064,
-0.014101762,
-0.024426753,
-0.06330849,
0.009944595,
-0.0030295693,
0.005308539,
-0.008185271,
0.0003842153,
0.012940201,
-0.008117344,
-0.008769449,
0.03526799,
-0.03521365,
0.004490012,
-0.0137349535,
0.023733892,
0.015854293,
-0.029589247,
0.013646648,
-0.021302084,
0.017090576,
0.016941134,
-0.016601497,
-0.008939267,
0.005478358,
0.01601732,
-0.0040654647,
0.010651042,
-0.025146784,
0.06559086,
-0.008545288,
-0.012661698,
0.038854565,
-0.018381199,
-0.017280772,
0.022062873,
-0.0037699798,
0.01111295,
0.008606423,
0.0338551,
0.0029939073,
0.017647581,
-0.023761062,
-0.0045205792,
0.008117344,
-0.018856691,
-0.016261859,
-0.020025047,
0.00036999295,
-0.0045273723,
-0.0036850704,
0.021533038,
0.031409707,
0.020120144,
-0.009061537,
-0.057385206,
0.0077505354,
-0.00046657748,
-0.0173487,
-0.009482688,
-0.021003203,
0.0021499074,
0.037115622,
0.012946994,
0.017294358,
-0.008932475,
0.0023061407,
0.003905835,
-0.006368209,
0.018788764,
0.039887067,
-0.046706993,
-0.041490156,
0.01251905,
-0.0211934,
-0.03154556,
0.0338551,
-0.020364683,
-0.019631065,
-0.0059130946,
-0.019753335,
0.039180618,
0.004031501,
0.0017559276,
-0.038800225,
0.014414229,
0.035077795,
0.0006830966,
-0.027388394,
0.020935275,
0.004177545,
-0.015541827,
-0.03265957,
-0.006089706,
0.013008129,
0.002255195,
-0.009774776,
-0.003296185,
-0.015759194,
0.0072478713,
0.016343372,
-0.0011564668,
0.0319803,
0.0053017465,
0.0064327405,
-0.009958181,
-0.022076458,
0.0029293762,
-0.023258397,
-0.004591903,
0.010195928,
0.028040498,
-0.00572969,
-0.00038824847,
0.023747476,
0.017878534,
-0.020473368,
0.015338045,
0.011506929,
-0.03048589,
-0.020541295,
0.011439002,
-0.008151308,
0.002542189,
-0.0038107364,
-0.0032180685,
0.04102825,
0.010657835,
0.014618012,
-0.030866286,
0.027035171,
0.0026967244,
0.014848966,
0.0069286115,
-0.04339213,
-0.01919633,
-0.009808741,
-0.0030159838,
0.009985352,
0.010087243,
-0.029072998,
0.07841558,
0.028719775,
-0.0003937676,
0.00887134,
-0.014224032,
0.011364281,
0.014971236,
-0.012586977,
-0.020595638,
-0.013884394,
0.018231759,
-0.00007042178,
-0.0040654647,
0.00048271025,
-0.012709248,
-0.023910502,
-0.000033035085,
-0.0123764025,
0.022606293,
-0.0147946235,
0.018761594,
0.021003203,
-0.016030906,
0.018856691,
-0.016003734,
0.010623871,
0.022307413,
0.0016370544,
-0.0055360966,
-0.039615355,
0.040158775,
-0.000049061746,
-0.04605489,
-0.021383597,
0.0094962735,
0.023149714,
0.00068394566,
0.03361056,
0.02855675,
0.0029463582,
0.00044662374,
0.0019682012,
-0.021736821,
-0.01998429,
-0.01916916,
-0.017321529,
0.009964974,
-0.022334583,
-0.0035152514
]
},
"status": "ok",
"time": 0.000330748
}

搜索流程

搜索流程:

用户 --> 搜索词变成向量(调用 OpenAI embeeding 接口) --> 去 Qdrant 中搜索 --> 把问题和参考答案作为 prompt 去 ChatGPT 搜索 --> 返回答案

向 ChatGPT 提问时设置的 prompt 内容。

func (cm *ChatMessages) Clear() {
	*cm = make([]*ChatMessage, 0) //重新初始化
	cm.AddForSystem("You are a helpful K8S assistant. I will provide you with text, including the question title or keywords, question description, and reference answer. If I provide a reference answer, please try to use it as much as possible.Try to answer in Chinese as much as possible, Keep your answer within 10 sentences. Accurate, useful, concise and to the point")

}

执行 go run main.go 首先根据我们的问题到 Qdrant 中搜索得到这个问题的描述和参考答案,然后向 ChatGPT 发送请求,得到最终结果。

                               
question: kubectl 镜像 策略
description: kubectl create deployment first-k8s-deploy --image="laxman/nodejs/express-app" --image-pull-policy="never"

Looking into kubectl create deployment --help doesn't provide any --image-pull-policy option.

Is there any global config to set imagePullPolicy and how can I set this flag for some specific deployments only?

* kubernetes
* kubectl
reference answer: You might have gone past what can be done with the command line. See Creating a Deployment ( https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#creating-a-deployment ) for how to specify a deployment in a yaml file.
The imagePullPolicy is part of the Container ( https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.17/#container-v1-core ) definition.
You can get the yaml for any kubectl command by adding -o yaml --dry-run to the command. Using your example deployment:
kubectl create deployment first-k8s-deploy \
Gives you:
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: first-k8s-deploy
name: first-k8s-deploy
spec:
replicas: 1
selector:
matchLabels:
app: first-k8s-deploy
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: first-k8s-deploy
spec:
containers:
name: express-app
resources: {}
Then add the imagePullPolicy property into a container in the list:
spec:
containers:
name: express-app
resources: {}
imagePullPolicy: Never
The yaml file you create can then be deployed with the following command
kubectl apply -f <filename>
The full data model is way too complex to represent as cli options.

# ChatGPT 给出的答案
------------------------
kubectl create deployment命令没有--image-pull-policy选项,因此,如果要设置此选项为某些特定部署,则您需要使用YAML文件来创建部署,而不是仅使用命令行选项。在YAML中,imagePullPolicy位于Container定义中。您可以将kubectl命令转换为YAML的镜像拉取策略。使用kubectl apply -f <filename>命令将YAML文件部署到Kubernetes集群中。Kubernetes的数据模型非常复杂,难以在命令行中表示所有选项。