Skip to content

Commit ed13b76

Browse files
authored
Merge pull request #29 from microsoft/byc-version2-changes
build your own copilot v2 changes
2 parents 78059a3 + 0fdc3c6 commit ed13b76

File tree

349 files changed

+38173
-90
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

349 files changed

+38173
-90
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"name": "Azure Developer CLI",
3+
"image": "mcr.microsoft.com/devcontainers/python:3.10",
4+
"features": {
5+
"ghcr.io/devcontainers/features/node:1": {
6+
"version": "16",
7+
"nodeGypDependencies": false
8+
},
9+
"ghcr.io/devcontainers/features/azure-cli:1.0.8": {},
10+
"ghcr.io/azure/azure-dev/azd:latest": {}
11+
},
12+
"customizations": {
13+
"vscode": {
14+
"extensions": [
15+
"ms-azuretools.azure-dev",
16+
"ms-azuretools.vscode-bicep",
17+
"ms-python.python"
18+
]
19+
},
20+
"codespaces": {
21+
"openFiles": [
22+
"README.md"
23+
]
24+
}
25+
},
26+
"forwardPorts": [
27+
5000
28+
],
29+
"remoteUser": "vscode",
30+
"hostRequirements": {
31+
"memory": "8gb"
32+
}
33+
}

ClientAdvisor/App/.env.sample

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
# Chat
2+
DEBUG=True
3+
AZURE_OPENAI_RESOURCE=
4+
AZURE_OPENAI_MODEL=gpt-35-turbo-16k
5+
AZURE_OPENAI_KEY=
6+
AZURE_OPENAI_MODEL_NAME=gpt-35-turbo-16k
7+
AZURE_OPENAI_TEMPERATURE=0
8+
AZURE_OPENAI_TOP_P=1.0
9+
AZURE_OPENAI_MAX_TOKENS=1000
10+
AZURE_OPENAI_STOP_SEQUENCE=
11+
AZURE_OPENAI_SEED=
12+
AZURE_OPENAI_CHOICES_COUNT=1
13+
AZURE_OPENAI_PRESENCE_PENALTY=0.0
14+
AZURE_OPENAI_FREQUENCY_PENALTY=0.0
15+
AZURE_OPENAI_LOGIT_BIAS=
16+
AZURE_OPENAI_USER=
17+
AZURE_OPENAI_TOOLS=
18+
AZURE_OPENAI_TOOL_CHOICE=
19+
AZURE_OPENAI_SYSTEM_MESSAGE=You are an AI assistant that helps people find information.
20+
AZURE_OPENAI_PREVIEW_API_VERSION=2024-05-01-preview
21+
AZURE_OPENAI_STREAM=True
22+
AZURE_OPENAI_ENDPOINT=
23+
AZURE_OPENAI_EMBEDDING_NAME=text-embedding-ada-002
24+
AZURE_OPENAI_EMBEDDING_ENDPOINT=
25+
AZURE_OPENAI_EMBEDDING_KEY=
26+
# User Interface
27+
UI_TITLE=
28+
UI_LOGO=
29+
UI_CHAT_LOGO=
30+
UI_CHAT_TITLE=
31+
UI_CHAT_DESCRIPTION=
32+
UI_FAVICON=
33+
# Chat history
34+
AZURE_COSMOSDB_ACCOUNT=
35+
AZURE_COSMOSDB_DATABASE=db_conversation_history
36+
AZURE_COSMOSDB_CONVERSATIONS_CONTAINER=conversations
37+
AZURE_COSMOSDB_ACCOUNT_KEY=
38+
AZURE_COSMOSDB_ENABLE_FEEDBACK=True
39+
# Chat with data: common settings
40+
SEARCH_TOP_K=5
41+
SEARCH_STRICTNESS=3
42+
SEARCH_ENABLE_IN_DOMAIN=True
43+
# Chat with data: Azure AI Search
44+
AZURE_SEARCH_SERVICE=
45+
AZURE_SEARCH_INDEX=
46+
AZURE_SEARCH_KEY=
47+
AZURE_SEARCH_SEMANTIC_SEARCH_CONFIG=
48+
AZURE_SEARCH_INDEX_IS_PRECHUNKED=False
49+
AZURE_SEARCH_TOP_K=5
50+
AZURE_SEARCH_ENABLE_IN_DOMAIN=True
51+
AZURE_SEARCH_CONTENT_COLUMNS=content
52+
AZURE_SEARCH_FILENAME_COLUMN=sourceurl
53+
AZURE_SEARCH_TITLE_COLUMN=client_id
54+
AZURE_SEARCH_URL_COLUMN=sourceurl
55+
AZURE_SEARCH_VECTOR_COLUMNS=
56+
AZURE_SEARCH_QUERY_TYPE=simple
57+
AZURE_SEARCH_PERMITTED_GROUPS_COLUMN=
58+
AZURE_SEARCH_STRICTNESS=3
59+
# Chat with data: Azure CosmosDB Mongo VCore
60+
AZURE_COSMOSDB_MONGO_VCORE_CONNECTION_STRING=
61+
AZURE_COSMOSDB_MONGO_VCORE_DATABASE=
62+
AZURE_COSMOSDB_MONGO_VCORE_CONTAINER=
63+
AZURE_COSMOSDB_MONGO_VCORE_INDEX=
64+
AZURE_COSMOSDB_MONGO_VCORE_INDEX=
65+
AZURE_COSMOSDB_MONGO_VCORE_TOP_K=
66+
AZURE_COSMOSDB_MONGO_VCORE_STRICTNESS=
67+
AZURE_COSMOSDB_MONGO_VCORE_ENABLE_IN_DOMAIN=
68+
AZURE_COSMOSDB_MONGO_VCORE_CONTENT_COLUMNS=
69+
AZURE_COSMOSDB_MONGO_VCORE_FILENAME_COLUMN=
70+
AZURE_COSMOSDB_MONGO_VCORE_TITLE_COLUMN=
71+
AZURE_COSMOSDB_MONGO_VCORE_URL_COLUMN=
72+
AZURE_COSMOSDB_MONGO_VCORE_VECTOR_COLUMNS=
73+
# Chat with data: Elasticsearch
74+
ELASTICSEARCH_ENDPOINT=
75+
ELASTICSEARCH_ENCODED_API_KEY=
76+
ELASTICSEARCH_INDEX=
77+
ELASTICSEARCH_QUERY_TYPE=
78+
ELASTICSEARCH_TOP_K=
79+
ELASTICSEARCH_ENABLE_IN_DOMAIN=
80+
ELASTICSEARCH_CONTENT_COLUMNS=
81+
ELASTICSEARCH_FILENAME_COLUMN=
82+
ELASTICSEARCH_TITLE_COLUMN=
83+
ELASTICSEARCH_URL_COLUMN=
84+
ELASTICSEARCH_VECTOR_COLUMNS=
85+
ELASTICSEARCH_STRICTNESS=
86+
ELASTICSEARCH_EMBEDDING_MODEL_ID=
87+
# Chat with data: Pinecone
88+
PINECONE_ENVIRONMENT=
89+
PINECONE_API_KEY=
90+
PINECONE_INDEX_NAME=
91+
PINECONE_TOP_K=
92+
PINECONE_STRICTNESS=
93+
PINECONE_ENABLE_IN_DOMAIN=
94+
PINECONE_CONTENT_COLUMNS=
95+
PINECONE_FILENAME_COLUMN=
96+
PINECONE_TITLE_COLUMN=
97+
PINECONE_URL_COLUMN=
98+
PINECONE_VECTOR_COLUMNS=
99+
# Chat with data: Azure Machine Learning MLIndex
100+
AZURE_MLINDEX_NAME=
101+
AZURE_MLINDEX_VERSION=
102+
AZURE_ML_PROJECT_RESOURCE_ID=
103+
AZURE_MLINDEX_TOP_K=
104+
AZURE_MLINDEX_STRICTNESS=
105+
AZURE_MLINDEX_ENABLE_IN_DOMAIN=
106+
AZURE_MLINDEX_CONTENT_COLUMNS=
107+
AZURE_MLINDEX_FILENAME_COLUMN=
108+
AZURE_MLINDEX_TITLE_COLUMN=
109+
AZURE_MLINDEX_URL_COLUMN=
110+
AZURE_MLINDEX_VECTOR_COLUMNS=
111+
AZURE_MLINDEX_QUERY_TYPE=
112+
# Chat with data: Prompt flow API
113+
USE_PROMPTFLOW=False
114+
PROMPTFLOW_ENDPOINT=
115+
PROMPTFLOW_API_KEY=
116+
PROMPTFLOW_RESPONSE_TIMEOUT=120
117+
PROMPTFLOW_REQUEST_FIELD_NAME=query
118+
PROMPTFLOW_RESPONSE_FIELD_NAME=reply
119+
PROMPTFLOW_CITATIONS_FIELD_NAME=documents
120+
STREAMING_AZUREFUNCTION_ENDPOINT=
121+
USE_AZUREFUNCTION=True
122+
SQL_CONNECTION=
123+
SQLDB_CONNECTION_STRING=
124+
SQLDB_SERVER=
125+
SQLDB_DATABASE=
126+
SQLDB_USERNAME=
127+
SQLDB_PASSWORD=
128+
SQLDB_DRIVER=
129+
VITE_POWERBI_EMBED_URL=
File renamed without changes.

ClientAdvisor/App/.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# TeamsFx files
2+
env/.env.*.user
3+
env/.env.local
4+
.localConfigs
5+
appPackage/build
6+
7+
# dependencies
8+
node_modules/
9+
10+
# misc
11+
.env
12+
.deployment
13+
.DS_Store
14+
15+
# build
16+
lib/
17+
18+
.venv
19+
frontend/node_modules
20+
.env
21+
# static
22+
.azure/
23+
__pycache__/
24+
.ipynb_checkpoints/
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"name": "Python: Sample App Backend",
6+
"type": "python",
7+
"request": "launch",
8+
"module": "quart",
9+
"cwd": "${workspaceFolder}",
10+
"env": {
11+
"QUART_APP": "app:app",
12+
"QUART_ENV": "development",
13+
"QUART_DEBUG": "0"
14+
},
15+
"args": [
16+
"run",
17+
"--no-reload",
18+
"-p 50505"
19+
],
20+
"console": "integratedTerminal",
21+
"justMyCode": false,
22+
"envFile": "${workspaceFolder}/.env",
23+
}
24+
]
25+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
### Deploy from your local machine
2+
3+
#### Local Setup: Basic Chat Experience
4+
1. Copy `.env.sample` to a new file called `.env` and update the values from your azure resource group.
5+
6+
2. Start the app with `start.cmd`. This will build the frontend, install backend dependencies, and then start the app. Or, just run the backend in debug mode using the VSCode debug configuration in `.vscode/launch.json`.
7+
8+
3. You can see the local running app at http://127.0.0.1:50505.
9+
10+
11+
#### Deploy with the Azure CLI
12+
**NOTE**: If you've made code changes, be sure to **build the app code** with `start.cmd` or `start.sh` before you deploy, otherwise your changes will not be picked up. If you've updated any files in the `frontend` folder, make sure you see updates to the files in the `static` folder before you deploy.
13+
14+
You can use the [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) to deploy the app from your local machine. Make sure you have version 2.48.1 or later.
15+
16+
If this is your first time deploying the app, you can use [az webapp up](https://learn.microsoft.com/en-us/cli/azure/webapp?view=azure-cli-latest#az-webapp-up). Run the following two commands from the root folder of the repo, updating the placeholder values to your desired app name, resource group, location, and subscription. You can also change the SKU if desired.
17+
18+
1. `az webapp up --runtime PYTHON:3.11 --sku B1 --name <new-app-name> --resource-group <resource-group-name> --location <azure-region> --subscription <subscription-name>`
19+
1. `az webapp config set --startup-file "python3 -m gunicorn app:app" --name <new-app-name>`
20+
21+
If you've deployed the app previously, first run this command to update the appsettings to allow local code deployment:
22+
23+
`az webapp config appsettings set -g <resource-group-name> -n <existing-app-name> --settings WEBSITE_WEBDEPLOY_USE_SCM=false`
24+
25+
Check the runtime stack for your app by viewing the app service resource in the Azure Portal. If it shows "Python - 3.10", use `PYTHON:3.10` in the runtime argument below. If it shows "Python - 3.11", use `PYTHON:3.11` in the runtime argument below.
26+
27+
Check the SKU in the same way. Use the abbreviated SKU name in the argument below, e.g. for "Basic (B1)" the SKU is `B1`.
28+
29+
Then, use these commands to deploy your local code to the existing app:
30+
31+
1. `az webapp up --runtime <runtime-stack> --sku <sku> --name <existing-app-name> --resource-group <resource-group-name>`
32+
1. `az webapp config set --startup-file "python3 -m gunicorn app:app" --name <existing-app-name>`
33+
34+
Make sure that the app name and resource group match exactly for the app that was previously deployed.
35+
36+
Deployment will take several minutes. When it completes, you should be able to navigate to your app at {app-name}.azurewebsites.net.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
FROM node:20-alpine AS frontend
2+
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
3+
4+
WORKDIR /home/node/app
5+
COPY ./frontend/package*.json ./
6+
USER node
7+
RUN npm ci
8+
COPY --chown=node:node ./frontend/ ./frontend
9+
COPY --chown=node:node ./static/ ./static
10+
WORKDIR /home/node/app/frontend
11+
RUN npm run build
12+
13+
FROM python:3.11-alpine
14+
RUN apk add --no-cache --virtual .build-deps \
15+
build-base \
16+
libffi-dev \
17+
openssl-dev \
18+
curl \
19+
&& apk add --no-cache \
20+
libpq
21+
# python3 python3-dev g++ unixodbc-dev unixodbc libpq-dev
22+
23+
COPY requirements.txt /usr/src/app/
24+
RUN pip install --no-cache-dir -r /usr/src/app/requirements.txt \
25+
&& rm -rf /root/.cache
26+
27+
COPY . /usr/src/app/
28+
COPY --from=frontend /home/node/app/static /usr/src/app/static/
29+
WORKDIR /usr/src/app
30+
EXPOSE 80
31+
32+
CMD ["gunicorn" , "-b", "0.0.0.0:80", "app:app"]
File renamed without changes.

0 commit comments

Comments
 (0)