- 开发工具
- Visual Studio Code
- Chrome
- Xshell
- Xftp
- 开发语言
- Python
- JavaScript
- 软件工具
- Elasticsearch
- 软件版本:7.0.1 (锁版本)
- 下载链接:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.1-linux-x86_64.tar.gz
- 解压文件:
tar -zxvf elasticsearch-7.0.1-linux-x86_64.tar.gz
- 开启窗口:
screen -S es
- 启动程序:
./elasticsearch-7.0.1-linux-x86_64/bin/elasticsearch
- 隐藏窗口:Ctrl + A + D
- 检验启动:
curl localhost:9200
- Miniconda/Anaconda (不锁版本)
- Elasticsearch
- 下载并安装Conda环境(Anaconda或Miniconda)
- 创建虚拟环境:
conda create --name developer_search python==3.8
- 进入虚拟环境:
conda activate developer_search
- 切换到
src
目录(cd命令) - 下载项目依赖(pip):
pip install -r requirements.txt
- 启动Flask:
python developer_search.py
- 转发端口到浏览器:
http://localhost:5000
├── data
│ ├── codesearch
│ │ ├── data_source
│ │ │ ├── data0.pkl
│ │ │ ├── data100.pkl
│ │ │ ├── data101.pkl
│ │ │ ├── data102.pkl
│ │ │ ├── data103.pkl
│ │ │ ├── data104.pkl
│ │ │ ├── data105.pkl
│ │ │ ├── data106.pkl
│ │ │ ├── data107.pkl
│ │ │ ├── data108.pkl
│ │ │ ├── data109.pkl
│ │ │ ├── data10.pkl
│ │ │ ├── data110.pkl
│ │ │ ├── data111.pkl
│ │ │ ├── data112.pkl
│ │ │ ├── data113.pkl
│ │ │ ├── data114.pkl
│ │ │ ├── data115.pkl
│ │ │ ├── data116.pkl
│ │ │ ├── data117.pkl
│ │ │ ├── data118.pkl
│ │ │ ├── data119.pkl
│ │ │ ├── data11.pkl
│ │ │ ├── data120.pkl
│ │ │ ├── data121.pkl
│ │ │ ├── data122.pkl
│ │ │ ├── data123.pkl
│ │ │ ├── data124.pkl
│ │ │ ├── data125.pkl
│ │ │ ├── data126.pkl
│ │ │ ├── data127.pkl
│ │ │ ├── data128.pkl
│ │ │ ├── data129.pkl
│ │ │ ├── data12.pkl
│ │ │ ├── data130.pkl
│ │ │ ├── data131.pkl
│ │ │ ├── data132.pkl
│ │ │ ├── data133.pkl
│ │ │ ├── data134.pkl
│ │ │ ├── data135.pkl
│ │ │ ├── data136.pkl
│ │ │ ├── data137.pkl
│ │ │ ├── data138.pkl
│ │ │ ├── data139.pkl
│ │ │ ├── data13.pkl
│ │ │ ├── data140.pkl
│ │ │ ├── data141.pkl
│ │ │ ├── data142.pkl
│ │ │ ├── data143.pkl
│ │ │ ├── data144.pkl
│ │ │ ├── data145.pkl
│ │ │ ├── data146.pkl
│ │ │ ├── data147.pkl
│ │ │ ├── data148.pkl
│ │ │ ├── data149.pkl
│ │ │ ├── data14.pkl
│ │ │ ├── data150.pkl
│ │ │ ├── data151.pkl
│ │ │ ├── data152.pkl
│ │ │ ├── data153.pkl
│ │ │ ├── data154.pkl
│ │ │ ├── data155.pkl
│ │ │ ├── data156.pkl
│ │ │ ├── data157.pkl
│ │ │ ├── data158.pkl
│ │ │ ├── data159.pkl
│ │ │ ├── data15.pkl
│ │ │ ├── data160.pkl
│ │ │ ├── data161.pkl
│ │ │ ├── data162.pkl
│ │ │ ├── data163.pkl
│ │ │ ├── data164.pkl
│ │ │ ├── data165.pkl
│ │ │ ├── data16.pkl
│ │ │ ├── data17.pkl
│ │ │ ├── data18.pkl
│ │ │ ├── data19.pkl
│ │ │ ├── data1.pkl
│ │ │ ├── data20.pkl
│ │ │ ├── data21.pkl
│ │ │ ├── data22.pkl
│ │ │ ├── data23.pkl
│ │ │ ├── data24.pkl
│ │ │ ├── data25.pkl
│ │ │ ├── data26.pkl
│ │ │ ├── data27.pkl
│ │ │ ├── data28.pkl
│ │ │ ├── data29.pkl
│ │ │ ├── data2.pkl
│ │ │ ├── data30.pkl
│ │ │ ├── data31.pkl
│ │ │ ├── data32.pkl
│ │ │ ├── data33.pkl
│ │ │ ├── data34.pkl
│ │ │ ├── data35.pkl
│ │ │ ├── data36.pkl
│ │ │ ├── data37.pkl
│ │ │ ├── data38.pkl
│ │ │ ├── data39.pkl
│ │ │ ├── data3.pkl
│ │ │ ├── data40.pkl
│ │ │ ├── data41.pkl
│ │ │ ├── data42.pkl
│ │ │ ├── data43.pkl
│ │ │ ├── data44.pkl
│ │ │ ├── data45.pkl
│ │ │ ├── data46.pkl
│ │ │ ├── data47.pkl
│ │ │ ├── data48.pkl
│ │ │ ├── data49.pkl
│ │ │ ├── data4.pkl
│ │ │ ├── data50.pkl
│ │ │ ├── data51.pkl
│ │ │ ├── data52.pkl
│ │ │ ├── data53.pkl
│ │ │ ├── data54.pkl
│ │ │ ├── data55.pkl
│ │ │ ├── data56.pkl
│ │ │ ├── data57.pkl
│ │ │ ├── data58.pkl
│ │ │ ├── data59.pkl
│ │ │ ├── data5.pkl
│ │ │ ├── data60.pkl
│ │ │ ├── data61.pkl
│ │ │ ├── data62.pkl
│ │ │ ├── data63.pkl
│ │ │ ├── data64.pkl
│ │ │ ├── data65.pkl
│ │ │ ├── data66.pkl
│ │ │ ├── data67.pkl
│ │ │ ├── data68.pkl
│ │ │ ├── data69.pkl
│ │ │ ├── data6.pkl
│ │ │ ├── data70.pkl
│ │ │ ├── data71.pkl
│ │ │ ├── data72.pkl
│ │ │ ├── data73.pkl
│ │ │ ├── data74.pkl
│ │ │ ├── data75.pkl
│ │ │ ├── data76.pkl
│ │ │ ├── data77.pkl
│ │ │ ├── data78.pkl
│ │ │ ├── data79.pkl
│ │ │ ├── data7.pkl
│ │ │ ├── data80.pkl
│ │ │ ├── data81.pkl
│ │ │ ├── data82.pkl
│ │ │ ├── data83.pkl
│ │ │ ├── data84.pkl
│ │ │ ├── data85.pkl
│ │ │ ├── data86.pkl
│ │ │ ├── data87.pkl
│ │ │ ├── data88.pkl
│ │ │ ├── data89.pkl
│ │ │ ├── data8.pkl
│ │ │ ├── data90.pkl
│ │ │ ├── data91.pkl
│ │ │ ├── data92.pkl
│ │ │ ├── data93.pkl
│ │ │ ├── data94.pkl
│ │ │ ├── data95.pkl
│ │ │ ├── data96.pkl
│ │ │ ├── data97.pkl
│ │ │ ├── data98.pkl
│ │ │ ├── data99.pkl
│ │ │ └── data9.pkl
│ │ ├── java_test_0.jsonl.gz
│ │ ├── test
│ │ │ └── java
│ │ │ ├── batch_0.txt
│ │ │ ├── batch_10.txt
│ │ │ ├── batch_11.txt
│ │ │ ├── batch_121.txt
│ │ │ ├── batch_12.txt
│ │ │ ├── batch_13.txt
│ │ │ ├── batch_14.txt
│ │ │ ├── batch_15.txt
│ │ │ ├── batch_16.txt
│ │ │ ├── batch_17.txt
│ │ │ ├── batch_18.txt
│ │ │ ├── batch_19.txt
│ │ │ ├── batch_1.txt
│ │ │ ├── batch_20.txt
│ │ │ ├── batch_21.txt
│ │ │ ├── batch_22.txt
│ │ │ ├── batch_23.txt
│ │ │ ├── batch_24.txt
│ │ │ ├── batch_25.txt
│ │ │ ├── batch_2.txt
│ │ │ ├── batch_3.txt
│ │ │ ├── batch_4.txt
│ │ │ ├── batch_5.txt
│ │ │ ├── batch_6.txt
│ │ │ ├── batch_7.txt
│ │ │ ├── batch_8.txt
│ │ │ ├── batch_9.txt
│ │ │ └── cached_test_batch_121_codebert_200_codesearch
│ │ ├── train.log
│ │ └── train_valid
│ │ └── java
│ │ ├── cached_dev_valid_codebert_200_codesearch
│ │ ├── cached_train_train_codebert_200_codesearch
│ │ ├── train.txt
│ │ └── valid.txt
│ ├── code-snippet.txt
│ ├── index
│ │ ├── _MAIN_1.toc
│ │ ├── MAIN_dhb9stsudccfjdhy.seg
│ │ └── MAIN_WRITELOCK
│ ├── java-code-selection.train
│ ├── jdk_vocab.pkl
│ ├── method_vocab_stemed.pkl
│ ├── parsed_vocab_jdk_item.pkl
│ ├── query_code_json.json
│ └── query.txt
├── images
│ └── code-search-net.png
│ └── stack-overflow.png
├── LICENSE
├── log
│ └── main.log
├── model
│ ├── bert
│ │ ├── config.json
│ │ ├── pytorch_model.bin
│ │ ├── special_tokens_map.json
│ │ ├── tokenizer_config.json
│ │ ├── tokenizer.json
│ │ └── vocab.txt
│ ├── codebert
│ │ ├── config.json
│ │ ├── merges.txt
│ │ ├── pytorch_model.bin
│ │ ├── special_tokens_map.json
│ │ ├── tokenizer_config.json
│ │ └── vocab.json
│ ├── code_search
│ │ ├── checkpoint-best
│ │ │ ├── config.json
│ │ │ ├── optimizer.pt
│ │ │ ├── pytorch_model.bin
│ │ │ ├── scheduler.pt
│ │ │ ├── training_0.bin
│ │ │ ├── training_1.bin
│ │ │ └── training_2.bin
│ │ ├── checkpoint-last
│ │ │ ├── config.json
│ │ │ ├── idx_file.txt
│ │ │ ├── optimizer.pt
│ │ │ ├── pytorch_model.bin
│ │ │ ├── scheduler.pt
│ │ │ └── step_file.txt
│ │ ├── config.json
│ │ ├── eval_results.txt
│ │ ├── merges.txt
│ │ ├── pytorch_model.bin
│ │ ├── special_tokens_map.json
│ │ ├── tokenizer_config.json
│ │ ├── training_args.bin
│ │ └── vocab.json
│ ├── code_selector
│ │ ├── config.json
│ │ ├── model.ckpt
│ │ ├── pytorch_model.bin
│ │ ├── tokenizer_config.json
│ │ ├── tokenizer.json
│ │ └── training_stats.json
│ └── t5_paraphrase
│ ├── config.json
│ ├── pytorch_model.bin
│ ├── special_tokens_map.json
│ ├── spiece.model
│ └── tokenizer_config.json
├── README.md
├── requirements.txt
├── result
│ └── code_search
│ └── 121_batch_result.txt
└── src
├── bert_download.py
├── bert_mlp.py
├── codebert_download.py
├── codebert_fine_tune.sh
├── codebert_inference.sh
├── codebert_process_data.py
├── codebert_run_classifier.py
├── codebert_utils.py
├── code_matcher_utils.py
├── code_search_index.py
├── code_search_parse.py
├── code_search_rerank.py
├── code_search.py
├── code_selector_data_check.py
├── code_selector_data_process.py
├── code_selector_model.py
├── code_selector_test.py
├── code_selector_utils.py
├── developer_search.py
├── __pycache__
│ ├── bert_mlp.cpython-37.pyc
│ ├── codebert_utils_2.cpython-38.pyc
│ ├── codebert_utils.cpython-38.pyc
│ ├── code_selector_model.cpython-37.pyc
│ ├── code_selector_utils.cpython-37.pyc
│ ├── flask_show.cpython-37.pyc
│ ├── parsing.cpython-37.pyc
│ ├── query_rewriter_model.cpython-37.pyc
│ └── util.cpython-37.pyc
├── qa_search.py
├── query_rewriter_model.py
├── query_rewriter_test.py
├── runs
├── static
│ ├── css
│ │ ├── a11y-light.css
│ │ ├── codestyle.css
│ │ ├── index.css
│ │ ├── like.css
│ │ ├── load.css
│ │ ├── prism.css
│ │ ├── style.css
│ │ └── waitMe.css
│ ├── img
│ │ ├── dislike.gif
│ │ ├── favicon.ico
│ │ ├── like.gif
│ │ └── search-white.png
│ ├── js
│ │ ├── highlight.pack.js
│ │ ├── index.js
│ │ ├── jquery-1.11.0.min.js
│ │ ├── jquery.codestyle.js
│ │ ├── jquery.codestyle.min.js
│ │ ├── like.js
│ │ ├── prism.js
│ │ └── wait.js
│ └── lib
│ ├── bootstrap-4.1.3-dist
│ │ ├── css
│ │ │ ├── bootstrap.css
│ │ │ ├── bootstrap.css.map
│ │ │ ├── bootstrap-grid.css
│ │ │ ├── bootstrap-grid.css.map
│ │ │ ├── bootstrap-grid.min.css
│ │ │ ├── bootstrap-grid.min.css.map
│ │ │ ├── bootstrap.min.css
│ │ │ ├── bootstrap.min.css.map
│ │ │ ├── bootstrap-reboot.css
│ │ │ ├── bootstrap-reboot.css.map
│ │ │ ├── bootstrap-reboot.min.css
│ │ │ └── bootstrap-reboot.min.css.map
│ │ └── js
│ │ ├── bootstrap.bundle.js
│ │ ├── bootstrap.bundle.js.map
│ │ ├── bootstrap.bundle.min.js
│ │ ├── bootstrap.bundle.min.js.map
│ │ ├── bootstrap.js
│ │ ├── bootstrap.js.map
│ │ ├── bootstrap.min.js
│ │ └── bootstrap.min.js.map
│ └── jquery-3.3.1.min.js
├── templates
│ └── index.html
└── torch_cuda_test.py
- JavaAPI
- CodeSearchNet
- CodeSearchNet Challenge: Evaluating the State of Semantic Code Search
- GitHub Repository
- 数据示例:
{ "repo": "googleapis/google-cloud-java", "path": "google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriptionAdminClient.java", "func_name": "SubscriptionAdminClient.modifyPushConfig", "original_string": "public final void modifyPushConfig(String subscription, PushConfig pushConfig) {\n\n ModifyPushConfigRequest request =\n ModifyPushConfigRequest.newBuilder()\n .setSubscription(subscription)\n .setPushConfig(pushConfig)\n .build();\n modifyPushConfig(request);\n }", "language": "java", "code": "public final void modifyPushConfig(String subscription, PushConfig pushConfig) {\n\n ModifyPushConfigRequest request =\n ModifyPushConfigRequest.newBuilder()\n .setSubscription(subscription)\n .setPushConfig(pushConfig)\n .build();\n modifyPushConfig(request);\n }", "code_tokens": ["public", "final", "void", "modifyPushConfig", "(", "String", "subscription", ",", "PushConfig", "pushConfig", ")", "{", "ModifyPushConfigRequest", "request", "=", "ModifyPushConfigRequest", ".", "newBuilder", "(", ")", ".", "setSubscription", "(", "subscription", ")", ".", "setPushConfig", "(", "pushConfig", ")", ".", "build", "(", ")", ";", "modifyPushConfig", "(", "request", ")", ";", "}"], "docstring": "Modifies the `PushConfig` for a specified subscription.\n\n<p>This may be used to change a push subscription to a pull one (signified by an empty\n`PushConfig`) or vice versa, or change the endpoint URL and other attributes of a push\nsubscription. Messages will accumulate for delivery continuously through the call regardless of\nchanges to the `PushConfig`.\n\n<p>Sample code:\n\n<pre><code>\ntry (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) {\nProjectSubscriptionName subscription = ProjectSubscriptionName.of(\"[PROJECT]\", \"[SUBSCRIPTION]\");\nPushConfig pushConfig = PushConfig.newBuilder().build();\nsubscriptionAdminClient.modifyPushConfig(subscription.toString(), pushConfig);\n}\n</code></pre>\n\n@param subscription The name of the subscription. Format is\n`projects/{project}/subscriptions/{sub}`.\n@param pushConfig The push configuration for future deliveries.\n<p>An empty `pushConfig` indicates that the Pub/Sub system should stop pushing messages\nfrom the given subscription and allow messages to be pulled and acknowledged - effectively\npausing the subscription if `Pull` or `StreamingPull` is not called.\n@throws com.google.api.gax.rpc.ApiException if the remote call fails", "docstring_tokens": ["Modifies", "the", "PushConfig", "for", "a", "specified", "subscription", "."], "sha": "d2f0bc64a53049040fe9c9d338b12fab3dd1ad6a", "url": "https://github.com/googleapis/google-cloud-java/blob/d2f0bc64a53049040fe9c9d338b12fab3dd1ad6a/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/SubscriptionAdminClient.java#L1291-L1299", "partition": "train" }
- CodeSearchNet Challenge: Evaluating the State of Semantic Code Search
- StackExchange
- StackExchange
- StackOverflow
- 数据示例:
{ "id": 1, "re_question": "how to make the division of 2 ints produce a float instead of another int?", "qc": { "question": "How can I increment a variable without exceeding a maximum value?", "code": "health = health < NUM ? health + NUM : NUM ;" } },
- CodeMacher
- BERT
- T5
- Que2Code
- CodeBERT