Rim BACCOUR commited on
Commit
4d46cce
·
unverified ·
1 Parent(s): 3d05be5

final version

Browse files
data/data_yield/rendement_forecast.csv ADDED
@@ -0,0 +1,226 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ year,yield_simple_forecast,yield_with_shading_forecast,culture
2
+ 2025,22.915000000000003,23.290000000000003,Colza d'hiver
3
+ 2026,23.458333333333332,23.543333333333333,Colza d'hiver
4
+ 2027,22.8325,22.901666666666667,Colza d'hiver
5
+ 2028,24.703333333333333,24.724166666666665,Colza d'hiver
6
+ 2029,22.299166666666668,22.519166666666667,Colza d'hiver
7
+ 2030,22.690833333333334,22.724999999999998,Colza d'hiver
8
+ 2031,22.949166666666667,23.339166666666667,Colza d'hiver
9
+ 2032,21.229166666666668,21.701666666666668,Colza d'hiver
10
+ 2033,24.775000000000002,24.814166666666665,Colza d'hiver
11
+ 2034,26.308333333333334,26.308333333333334,Colza d'hiver
12
+ 2035,22.752499999999998,23.088333333333335,Colza d'hiver
13
+ 2036,23.070833333333336,23.497500000000002,Colza d'hiver
14
+ 2037,23.611666666666668,23.734166666666667,Colza d'hiver
15
+ 2038,21.335833333333337,21.405833333333334,Colza d'hiver
16
+ 2039,21.86,22.060000000000002,Colza d'hiver
17
+ 2040,23.354166666666668,23.504166666666666,Colza d'hiver
18
+ 2041,23.379166666666666,23.548333333333336,Colza d'hiver
19
+ 2042,23.465833333333336,23.63416666666667,Colza d'hiver
20
+ 2043,23.723333333333333,23.873333333333335,Colza d'hiver
21
+ 2044,21.622500000000002,21.763333333333335,Colza d'hiver
22
+ 2045,21.9325,22.148333333333337,Colza d'hiver
23
+ 2046,23.5475,23.653333333333336,Colza d'hiver
24
+ 2047,20.065,20.236666666666668,Colza d'hiver
25
+ 2048,19.060833333333335,19.549166666666668,Colza d'hiver
26
+ 2049,22.608333333333334,22.905,Colza d'hiver
27
+ 2050,23.790833333333335,23.953333333333333,Colza d'hiver
28
+ 2051,22.828333333333333,23.174166666666668,Colza d'hiver
29
+ 2052,22.599166666666665,22.895833333333332,Colza d'hiver
30
+ 2053,21.965,22.190833333333334,Colza d'hiver
31
+ 2054,22.795833333333334,23.14833333333333,Colza d'hiver
32
+ 2055,21.6675,21.820000000000004,Colza d'hiver
33
+ 2056,22.935833333333335,23.031666666666666,Colza d'hiver
34
+ 2057,24.71666666666667,24.74083333333333,Colza d'hiver
35
+ 2058,19.434166666666666,20.023333333333333,Colza d'hiver
36
+ 2059,23.285,23.326666666666668,Colza d'hiver
37
+ 2060,21.528333333333336,21.647499999999997,Colza d'hiver
38
+ 2061,24.955000000000002,24.99,Colza d'hiver
39
+ 2062,22.939166666666665,23.314166666666665,Colza d'hiver
40
+ 2063,21.97,22.198333333333334,Colza d'hiver
41
+ 2064,22.933333333333334,23.293333333333333,Colza d'hiver
42
+ 2065,22.078333333333333,22.3325,Colza d'hiver
43
+ 2066,20.2475,20.466666666666665,Colza d'hiver
44
+ 2067,22.846666666666668,23.19666666666667,Colza d'hiver
45
+ 2068,24.80916666666667,24.855833333333333,Colza d'hiver
46
+ 2069,21.924166666666668,22.141666666666666,Colza d'hiver
47
+ 2070,23.526666666666667,23.628333333333334,Colza d'hiver
48
+ 2071,23.580833333333334,23.69416666666667,Colza d'hiver
49
+ 2072,19.93166666666667,20.2075,Colza d'hiver
50
+ 2073,20.398333333333333,20.645,Colza d'hiver
51
+ 2074,21.22,21.6975,Colza d'hiver
52
+ 2075,21.742500000000003,21.91416666666667,Colza d'hiver
53
+ 2076,22.804166666666664,22.86583333333333,Colza d'hiver
54
+ 2077,23.468333333333334,23.555000000000003,Colza d'hiver
55
+ 2078,18.330833333333334,18.63416666666667,Colza d'hiver
56
+ 2079,21.462500000000002,21.5625,Colza d'hiver
57
+ 2080,23.485833333333336,23.5775,Colza d'hiver
58
+ 2081,22.040000000000003,22.19,Colza d'hiver
59
+ 2082,23.200833333333335,23.632500000000004,Colza d'hiver
60
+ 2083,21.530833333333334,21.646666666666665,Colza d'hiver
61
+ 2084,23.67833333333333,23.815833333333334,Colza d'hiver
62
+ 2085,23.579166666666666,23.691666666666666,Colza d'hiver
63
+ 2086,21.968333333333334,22.10083333333333,Colza d'hiver
64
+ 2087,20.605833333333333,20.918333333333333,Colza d'hiver
65
+ 2088,21.5575,21.6825,Colza d'hiver
66
+ 2089,23.57166666666667,23.679166666666664,Colza d'hiver
67
+ 2090,23.0,23.392500000000002,Colza d'hiver
68
+ 2091,22.121666666666666,22.385833333333334,Colza d'hiver
69
+ 2092,23.415000000000003,23.540000000000003,Colza d'hiver
70
+ 2093,21.254166666666666,21.304166666666667,Colza d'hiver
71
+ 2094,21.811666666666667,21.999166666666667,Colza d'hiver
72
+ 2095,21.735833333333332,21.903333333333336,Colza d'hiver
73
+ 2096,22.820000000000004,22.886666666666667,Colza d'hiver
74
+ 2097,21.721666666666668,21.92833333333333,Colza d'hiver
75
+ 2098,22.39916666666667,22.632500000000004,Colza d'hiver
76
+ 2099,23.645833333333332,23.7775,Colza d'hiver
77
+ 2025,39.6175,39.99583333333333,Blé tendre d'hiver
78
+ 2026,40.13333333333333,40.19166666666667,Blé tendre d'hiver
79
+ 2027,35.803333333333335,35.935,Blé tendre d'hiver
80
+ 2028,40.044999999999995,40.080000000000005,Blé tendre d'hiver
81
+ 2029,38.90833333333333,39.10666666666666,Blé tendre d'hiver
82
+ 2030,35.560833333333335,35.6325,Blé tendre d'hiver
83
+ 2031,39.21,39.49333333333333,Blé tendre d'hiver
84
+ 2032,35.5925,36.12416666666667,Blé tendre d'hiver
85
+ 2033,40.16583333333333,40.23166666666666,Blé tendre d'hiver
86
+ 2034,42.75,42.75,Blé tendre d'hiver
87
+ 2035,39.0625,39.30416666666667,Blé tendre d'hiver
88
+ 2036,39.653333333333336,40.05416666666667,Blé tendre d'hiver
89
+ 2037,40.01,40.0375,Blé tendre d'hiver
90
+ 2038,35.62083333333333,35.7075,Blé tendre d'hiver
91
+ 2039,36.36666666666667,36.64,Blé tendre d'hiver
92
+ 2040,40.031666666666666,40.160000000000004,Blé tendre d'hiver
93
+ 2041,39.954166666666666,40.07666666666667,Blé tendre d'hiver
94
+ 2042,40.098333333333336,40.233333333333334,Blé tendre d'hiver
95
+ 2043,40.14333333333334,40.20333333333333,Blé tendre d'hiver
96
+ 2044,35.8975,36.0525,Blé tendre d'hiver
97
+ 2045,36.35166666666667,36.62083333333333,Blé tendre d'hiver
98
+ 2046,40.1675,40.233333333333334,Blé tendre d'hiver
99
+ 2047,34.33166666666667,34.5375,Blé tendre d'hiver
100
+ 2048,31.445833333333336,32.00083333333333,Blé tendre d'hiver
101
+ 2049,39.15,39.410000000000004,Blé tendre d'hiver
102
+ 2050,40.0875,40.13333333333333,Blé tendre d'hiver
103
+ 2051,39.49666666666666,39.83583333333333,Blé tendre d'hiver
104
+ 2052,39.07333333333333,39.314166666666665,Blé tendre d'hiver
105
+ 2053,36.00666666666667,36.19,Blé tendre d'hiver
106
+ 2054,39.6275,40.015,Blé tendre d'hiver
107
+ 2055,36.09916666666667,36.305,Blé tendre d'hiver
108
+ 2056,36.06583333333333,36.26166666666666,Blé tendre d'hiver
109
+ 2057,40.0675,40.10916666666667,Blé tendre d'hiver
110
+ 2058,32.1775,32.925000000000004,Blé tendre d'hiver
111
+ 2059,40.053333333333335,40.09166666666667,Blé tendre d'hiver
112
+ 2060,36.19416666666667,36.425000000000004,Blé tendre d'hiver
113
+ 2061,42.75,42.75,Blé tendre d'hiver
114
+ 2062,39.64333333333334,40.02166666666667,Blé tendre d'hiver
115
+ 2063,36.248333333333335,36.49,Blé tendre d'hiver
116
+ 2064,39.71,40.089166666666664,Blé tendre d'hiver
117
+ 2065,36.2525,36.49583333333333,Blé tendre d'hiver
118
+ 2066,34.3325,34.541666666666664,Blé tendre d'hiver
119
+ 2067,38.909166666666664,39.10666666666666,Blé tendre d'hiver
120
+ 2068,40.223333333333336,40.3025,Blé tendre d'hiver
121
+ 2069,35.97,36.14416666666667,Blé tendre d'hiver
122
+ 2070,40.26833333333334,40.358333333333334,Blé tendre d'hiver
123
+ 2071,40.27916666666667,40.373333333333335,Blé tendre d'hiver
124
+ 2072,32.13583333333333,32.416666666666664,Blé tendre d'hiver
125
+ 2073,34.895833333333336,35.233333333333334,Blé tendre d'hiver
126
+ 2074,35.51166666666666,36.02916666666667,Blé tendre d'hiver
127
+ 2075,35.810833333333335,35.94416666666667,Blé tendre d'hiver
128
+ 2076,35.830000000000005,35.9675,Blé tendre d'hiver
129
+ 2077,40.105,40.155,Blé tendre d'hiver
130
+ 2078,30.894166666666667,31.311666666666667,Blé tendre d'hiver
131
+ 2079,35.67416666666667,35.774166666666666,Blé tendre d'hiver
132
+ 2080,40.365833333333335,40.48166666666666,Blé tendre d'hiver
133
+ 2081,38.535833333333336,38.63583333333333,Blé tendre d'hiver
134
+ 2082,39.92166666666667,40.36,Blé tendre d'hiver
135
+ 2083,35.6225,35.70916666666667,Blé tendre d'hiver
136
+ 2084,40.24333333333333,40.32833333333333,Blé tendre d'hiver
137
+ 2085,40.306666666666665,40.406666666666666,Blé tendre d'hiver
138
+ 2086,38.58083333333334,38.693333333333335,Blé tendre d'hiver
139
+ 2087,34.69,34.99166666666667,Blé tendre d'hiver
140
+ 2088,35.571666666666665,35.645,Blé tendre d'hiver
141
+ 2089,40.126666666666665,40.181666666666665,Blé tendre d'hiver
142
+ 2090,39.115833333333335,39.37,Blé tendre d'hiver
143
+ 2091,37.794999999999995,38.155,Blé tendre d'hiver
144
+ 2092,38.67666666666667,38.8175,Blé tendre d'hiver
145
+ 2093,35.55083333333334,35.62,Blé tendre d'hiver
146
+ 2094,36.2575,36.501666666666665,Blé tendre d'hiver
147
+ 2095,35.89083333333333,36.04416666666666,Blé tendre d'hiver
148
+ 2096,35.86416666666667,36.01083333333333,Blé tendre d'hiver
149
+ 2097,35.79416666666666,35.9675,Blé tendre d'hiver
150
+ 2098,38.99916666666667,39.21,Blé tendre d'hiver
151
+ 2099,40.155,40.218333333333334,Blé tendre d'hiver
152
+ 2025,39.844166666666666,40.21083333333333,Orge d'hiver
153
+ 2026,40.365833333333335,40.416666666666664,Orge d'hiver
154
+ 2027,36.375,36.49333333333333,Orge d'hiver
155
+ 2028,40.288333333333334,40.31916666666667,Orge d'hiver
156
+ 2029,39.13833333333333,39.32833333333333,Orge d'hiver
157
+ 2030,36.163333333333334,36.2275,Orge d'hiver
158
+ 2031,39.44083333333333,39.7175,Orge d'hiver
159
+ 2032,36.13,36.637499999999996,Orge d'hiver
160
+ 2033,40.39416666666667,40.45166666666666,Orge d'hiver
161
+ 2034,42.65,42.65,Orge d'hiver
162
+ 2035,39.28916666666667,39.520833333333336,Orge d'hiver
163
+ 2036,39.865833333333335,40.25333333333333,Orge d'hiver
164
+ 2037,40.25833333333333,40.281666666666666,Orge d'hiver
165
+ 2038,36.214166666666664,36.291666666666664,Orge d'hiver
166
+ 2039,36.895,37.1425,Orge d'hiver
167
+ 2040,40.2675,40.38916666666666,Orge d'hiver
168
+ 2041,40.19833333333333,40.31666666666666,Orge d'hiver
169
+ 2042,40.32666666666666,40.45333333333333,Orge d'hiver
170
+ 2043,40.37416666666667,40.42666666666667,Orge d'hiver
171
+ 2044,36.4625,36.60166666666667,Orge d'hiver
172
+ 2045,36.876666666666665,37.12,Orge d'hiver
173
+ 2046,40.395,40.45333333333333,Orge d'hiver
174
+ 2047,34.895833333333336,35.083333333333336,Orge d'hiver
175
+ 2048,32.314166666666665,32.8375,Orge d'hiver
176
+ 2049,39.391666666666666,39.645,Orge d'hiver
177
+ 2050,40.324999999999996,40.365833333333335,Orge d'hiver
178
+ 2051,39.744166666666665,40.079166666666666,Orge d'hiver
179
+ 2052,39.3175,39.553333333333335,Orge d'hiver
180
+ 2053,36.568333333333335,36.735,Orge d'hiver
181
+ 2054,39.86333333333334,40.2425,Orge d'hiver
182
+ 2055,36.649166666666666,36.835,Orge d'hiver
183
+ 2056,36.62083333333333,36.799166666666665,Orge d'hiver
184
+ 2057,40.30833333333333,40.344166666666666,Orge d'hiver
185
+ 2058,33.005,33.71,Orge d'hiver
186
+ 2059,40.29583333333333,40.329166666666666,Orge d'hiver
187
+ 2060,36.737500000000004,36.946666666666665,Orge d'hiver
188
+ 2061,42.65,42.65,Orge d'hiver
189
+ 2062,39.880833333333335,40.25083333333333,Orge d'hiver
190
+ 2063,36.777499999999996,36.99583333333333,Orge d'hiver
191
+ 2064,39.939166666666665,40.31,Orge d'hiver
192
+ 2065,36.78916666666667,37.01,Orge d'hiver
193
+ 2066,34.90833333333333,35.10333333333333,Orge d'hiver
194
+ 2067,39.1675,39.361666666666665,Orge d'hiver
195
+ 2068,40.44416666666667,40.51333333333333,Orge d'hiver
196
+ 2069,36.531666666666666,36.68833333333333,Orge d'hiver
197
+ 2070,40.48333333333333,40.56166666666667,Orge d'hiver
198
+ 2071,40.49333333333333,40.574999999999996,Orge d'hiver
199
+ 2072,33.027499999999996,33.28333333333333,Orge d'hiver
200
+ 2073,35.4525,35.77166666666667,Orge d'hiver
201
+ 2074,36.07083333333333,36.57083333333333,Orge d'hiver
202
+ 2075,36.380833333333335,36.49916666666667,Orge d'hiver
203
+ 2076,36.4125,36.53916666666667,Orge d'hiver
204
+ 2077,40.34083333333333,40.385,Orge d'hiver
205
+ 2078,31.754166666666666,32.137499999999996,Orge d'hiver
206
+ 2079,36.26333333333333,36.3525,Orge d'hiver
207
+ 2080,40.56916666666667,40.669999999999995,Orge d'hiver
208
+ 2081,38.780833333333334,38.875,Orge d'hiver
209
+ 2082,40.13666666666666,40.5625,Orge d'hiver
210
+ 2083,36.22,36.300000000000004,Orge d'hiver
211
+ 2084,40.461666666666666,40.53583333333333,Orge d'hiver
212
+ 2085,40.516666666666666,40.604166666666664,Orge d'hiver
213
+ 2086,38.81666666666667,38.92083333333333,Orge d'hiver
214
+ 2087,35.259166666666665,35.544999999999995,Orge d'hiver
215
+ 2088,36.1675,36.23333333333333,Orge d'hiver
216
+ 2089,40.36,40.4075,Orge d'hiver
217
+ 2090,39.3725,39.623333333333335,Orge d'hiver
218
+ 2091,38.26,38.58083333333333,Orge d'hiver
219
+ 2092,38.92666666666667,39.065,Orge d'hiver
220
+ 2093,36.155833333333334,36.219166666666666,Orge d'hiver
221
+ 2094,36.788333333333334,37.009166666666665,Orge d'hiver
222
+ 2095,36.4575,36.59583333333333,Orge d'hiver
223
+ 2096,36.44416666666667,36.57833333333333,Orge d'hiver
224
+ 2097,36.369166666666665,36.53,Orge d'hiver
225
+ 2098,39.24,39.445,Orge d'hiver
226
+ 2099,40.385,40.44,Orge d'hiver
prompts/summary_prompt.py CHANGED
@@ -48,7 +48,7 @@ agricultural_yield_comparison_prompt = """
48
 
49
  Consignes pour la réponse :
50
  - Fournir une analyse détaillée, structurée et pédagogique.
51
- - S’appuyer exclusivement sur les données fournies et argumenter à l’aide d’indicateurs précis concernant l’évolution des variables.
52
  - Adopter une approche objective et non biaisée, sans favoriser un scénario par anticipation.
53
  - Vulgariser les concepts techniques pour assurer une compréhension optimale par l’agriculteur.
54
  - Le format de sortie doit être structuré, avec des sections claires et bien définies.
 
48
 
49
  Consignes pour la réponse :
50
  - Fournir une analyse détaillée, structurée et pédagogique.
51
+ - S’appuyer exclusivement sur les données fournies et argumenter à l’aide d’indicateurs précis concernant l’évolution des variables (en pourcentage)
52
  - Adopter une approche objective et non biaisée, sans favoriser un scénario par anticipation.
53
  - Vulgariser les concepts techniques pour assurer une compréhension optimale par l’agriculteur.
54
  - Le format de sortie doit être structuré, avec des sections claires et bien définies.
summary_test.py CHANGED
@@ -82,23 +82,31 @@ if __name__ == "__main__":
82
 
83
  climate_data = temperature_df.merge(rain_df, on='year').merge(irradiance_df, on='year') # meteo ok
84
  closest_soil_data = find_nearest_point_to_coordinates(latitude=lat, longitude=lon) # soil ok
85
- water_deficit_data = forecast_df[["time", "Water Deficit (mm/day)"]]
86
-
 
 
 
 
 
87
  # add a step to transform gps coordinates into french region to be able to filter yield data
88
  yield_past_data, yield_forecast_data = get_yield_data(region=region, culture=culture)
 
89
 
90
  # rendement (avec et sans ombrage)
91
 
92
  second_summary = get_agricultural_yield_comparison(culture=culture,
93
  region="bourgogne franche comté",
94
- water_df=water_deficit_data,
 
95
  climate_df=climate_data,
96
  soil_df=closest_soil_data,
97
  forecast_yield_df=yield_forecast_data,
98
  historical_yield_df=yield_past_data)
99
 
 
100
  print(second_summary)
101
-
102
  # from utils.soil_utils import find_nearest_point
103
  # city = "Bourgogne Franche Comté"
104
  # closest_soil_features = find_nearest_point(city)
 
82
 
83
  climate_data = temperature_df.merge(rain_df, on='year').merge(irradiance_df, on='year') # meteo ok
84
  closest_soil_data = find_nearest_point_to_coordinates(latitude=lat, longitude=lon) # soil ok
85
+ water_deficit_data = forecast_df[["year", "Water Deficit (mm/day)"]]
86
+ ############ forecast data PV ############
87
+ forecast_df_pv = get_forecast_data(scenario=scenario, longitude=lon, latitude=lat, shading_coef=0.2)
88
+ forecast_df_pv["time"] = pd.to_datetime(forecast_df_pv["time"])
89
+ forecast_df_pv['year'] = forecast_df_pv["time"].dt.year
90
+ water_deficit_data_pv = forecast_df_pv.groupby(by="year", as_index=False).mean().reset_index()[["year", "Water Deficit (mm/day)"]]
91
+
92
  # add a step to transform gps coordinates into french region to be able to filter yield data
93
  yield_past_data, yield_forecast_data = get_yield_data(region=region, culture=culture)
94
+ print(yield_forecast_data.tail())
95
 
96
  # rendement (avec et sans ombrage)
97
 
98
  second_summary = get_agricultural_yield_comparison(culture=culture,
99
  region="bourgogne franche comté",
100
+ water_df=water_deficit_data,
101
+ water_df_pv = water_deficit_data_pv,
102
  climate_df=climate_data,
103
  soil_df=closest_soil_data,
104
  forecast_yield_df=yield_forecast_data,
105
  historical_yield_df=yield_past_data)
106
 
107
+ print(yield_forecast_data.tail())
108
  print(second_summary)
109
+ # second_summary
110
  # from utils.soil_utils import find_nearest_point
111
  # city = "Bourgogne Franche Comté"
112
  # closest_soil_features = find_nearest_point(city)
utils/summary.py CHANGED
@@ -55,12 +55,14 @@ def get_agricultural_yield_comparison(culture: str,
55
  forecast_yield_df: pd.DataFrame,
56
  soil_df: pd.DataFrame,
57
  climate_df: pd.DataFrame,
58
- water_df: pd.DataFrame):
 
59
 
60
  historical_yield = historical_yield_df.head(len(historical_yield_df)).to_string(index=False)
61
  agricultural_yield = forecast_yield_df.head(len(forecast_yield_df)).to_string(index=False)
62
  soil_data = soil_df.head(len(soil_df)).to_string(index=False)
63
  water_data = water_df.head(len(water_df)).to_string(index=False)
 
64
  climate_data = climate_df.head(len(climate_df)).to_string(index=False)
65
 
66
  llm = ChatOpenAI(
@@ -75,7 +77,7 @@ def get_agricultural_yield_comparison(culture: str,
75
  prompt = ChatPromptTemplate.from_messages(
76
  [
77
  ("system", agricultural_yield_comparison_prompt),
78
- ("human", "Je suis agriculteur et je cultive de la {culture} à {region}. Voilà les caractéristiques du sol dans ma région {soil_data} et voilà l'historique de mon rendement {historical_yield} et projections du rendement ma culture avec et sans ombrage {agricultural_yield}. J'ai aussi les donnés historiques et prévisions du stress hydrique {water_data} et des données climatiques {climate_data}. " )
79
  ]
80
  )
81
  chain = prompt | llm | output_parser
@@ -85,6 +87,7 @@ def get_agricultural_yield_comparison(culture: str,
85
  "region": region,
86
  "soil_data": soil_data,
87
  "water_data": water_data,
 
88
  "climate_data": climate_data,
89
  "agricultural_yield": agricultural_yield,
90
  "historical_yield": historical_yield
 
55
  forecast_yield_df: pd.DataFrame,
56
  soil_df: pd.DataFrame,
57
  climate_df: pd.DataFrame,
58
+ water_df: pd.DataFrame,
59
+ water_df_pv: pd.DataFrame):
60
 
61
  historical_yield = historical_yield_df.head(len(historical_yield_df)).to_string(index=False)
62
  agricultural_yield = forecast_yield_df.head(len(forecast_yield_df)).to_string(index=False)
63
  soil_data = soil_df.head(len(soil_df)).to_string(index=False)
64
  water_data = water_df.head(len(water_df)).to_string(index=False)
65
+ water_data_pv = water_df_pv.head(len(water_df_pv)).to_string(index=False)
66
  climate_data = climate_df.head(len(climate_df)).to_string(index=False)
67
 
68
  llm = ChatOpenAI(
 
77
  prompt = ChatPromptTemplate.from_messages(
78
  [
79
  ("system", agricultural_yield_comparison_prompt),
80
+ ("human", "Je suis agriculteur et je cultive de la {culture} à {region}. Voilà les caractéristiques du sol dans ma région {soil_data} et voilà l'historique de mon rendement {historical_yield} et projections du rendement ma culture avec et sans ombrage {agricultural_yield}. J'ai aussi les prévisions du stress hydrique sans ombrage {water_data} et avec ombrage {water_data_pv} et des données climatiques {climate_data}. " )
81
  ]
82
  )
83
  chain = prompt | llm | output_parser
 
87
  "region": region,
88
  "soil_data": soil_data,
89
  "water_data": water_data,
90
+ "water_data_pv": water_data_pv,
91
  "climate_data": climate_data,
92
  "agricultural_yield": agricultural_yield,
93
  "historical_yield": historical_yield